2011-08-14 32 views
0

首先,我有一個數據庫查詢結果數組,我通過一個foreach吐出一個html列表。其次,我有一個多維數組,其中包含相關數據。這兩個數據源中的關係由「entry_id」定義。最有效的方法來查詢多維數組的值,當子數組中有相同的鍵php

我想在foreach的每次迭代中查詢多維數組,以檢查是否有匹配的entry_id,如果是的話我想拉出頁面標題添加到我的html列表中。 多維數組是這樣的:

array(4) { 
    [0]=> array(2) { 
      ["entry_id"]=> string(1) "1" 
      ["title"]=> string(4) "Page Title 1" 
     } 
     [1]=> array(2) { 
      ["entry_id"]=> string(1) "2" 
      ["title"]=> string(5) "Page Title 2" 
     } 
     [2]=> array(2) { 
      ["entry_id"]=> string(1) "3" 
      ["title"]=> string(8) "Page Title 3" 
     } 
     [3]=> array(2) { 
      ["entry_id"]=> string(1) "4" 
      ["title"]=> string(5) "Page Title 4" } 
     } 

所以,首先你會怎麼查詢該多維數組,並獲得頁面的標題了,您需要了解它的迭代,銘記子陣列具有相同的密鑰?其次,這樣做的最有效方法是什麼,我還應該提到陣列在理論上可能會變得非常大。

回答

1

變換數組,使你有結構

entry_id => title 

array(
    "1" => "Page Title 1", 
    "2" => "Page Title 2" 
) 

然後得到標題只是訪問與所述entry_id的值的數組。

如果可以,從一開始就像這樣構建數組,如果沒有,則必須遍歷它並創建此結構。

+0

我無法改變最初數組是如何出來的。你將如何改變我所擁有的陣列,使它看起來像那樣? – bjohnb

+0

@bjohnb:遍歷它並創建一個新的數組:http://php.net/manual/en/control-structures.foreach.php –

+0

哦好吧,我不知道是否有更聰明的方法使用array_flip或類似的。 好的,非常感謝你的確,非常棒! – bjohnb

相關問題