2011-08-12 5 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はセクション1から来ていることがわかります。どのセクションから来るのかをPHP経由でチェックする方法はありますか?したがって、wXBMCLibraryをセクション2に移動してコードを書き直すと、セクション2になっていることがわかります。

は私が

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

それが動的に動くので、これはすべてのsection2の中でできることをwXBMCLibrary除いて完璧に動作するので、未設定の機能でセクション1の部分は正確ではありませんします。 section1を現在のセクションを定義する変数に置き換えることができるように、どのセクションにあるかをチェックする方法が必要です。

おかげで、PHPで

+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

配列は、ほとんどのファイルシステムが行うように親レベルで取得する..タイプのものを持っていません。レコードを取得するには、配列を通ってデータがどこにあるのかを知る必要があります。そのパスがなければ、配列を再スキャンしてデータを見つけ出し、パスを追跡する必要があります。

関連する問題