2011-08-12 22 views
1

我有如下所示的多個數組。哪個數組的值來自於

<?php 
$arrLayout = array(
    "section1" => array(

     "wXBMCLibrary" => array(
      "title" => "XBMC Library", 
      "display" => "" 
     ), 
     "wRecentMovies" => array(
      "title" => "Recent Movies", 
      "display" => "" 
     ) 
    ), 
    "section2" => array(
     "wComingEpisodes" => array(
      "title" => "Coming Episodes", 
      "display" => "" 
     ), 
     "wSearch" => array(
      "title" => "Search", 
      "display" => "" 
     ) 
    ), 
); 

從查看代碼我可以看到wXBMCLibrary來自section1。有沒有辦法通過php來檢查每個部分來自哪個部分?所以如果我將wXBMCLibrary移動到第2部分並重新編碼,它會顯示它現在在第2部分。希望這是有道理的。

我想

if ($wXBMCLibrary == "false") 
{ 
unset($arrLayout['section1']['wXBMCLibrary']); 
} 

這一切都完美的作品,除了wXBMCLibrary可以在第2節,因爲它動態地移動,從而在未設定功能的SECTION1部分是不準確的。我需要一種方法來檢查它在哪個部分,以便我可以用定義當前部分的變量替換section1。

感謝

+2

是的,通過迭代數組並比較值/鍵。 –

+1

你的問題恐怕沒有意義。試着準確解釋你想達到的目標。 –

回答

1
function which_section($array, $find) { 
    foreach ($array as $key => $value) 
    foreach ($value as $k => $v) 
     if ($k == $find) return $key; 
    return false; 
} 

$section = which_section($arrLayout, 'wXBMCLibrary'); 
unset($arrLayout[$section]['wXBMCLibrary']); 
+0

完美!謝謝 – Michael

0

陣列在PHP沒有..類型的事情來獲得在父級別最喜歡的文件系統一樣。要獲得記錄,您必須知道陣列中的「路徑」,以便獲取您擁有的數據。如果沒有這個路徑,你將不得不重新掃描數組來找到你的數據,並通過它來跟蹤你的路徑。