哪个数组的价值来自哪个

时间:2011-08-12 19:36:59

标签: php

我有多个数组如下所示。

<?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可以在section2中,因为它动态移动所以unset函数中的section1部分不准确,所以这一切都完美无缺。我需要一种方法来检查它所在的部分,以便我可以用定义当前部分的变量替换section1。

由于

2 个答案:

答案 0 :(得分: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']);

答案 1 :(得分:0)

PHP中的数组没有像大多数文件系统那样在父级别获得..类型的东西。要获得记录,您必须知道通过数组到达数据所在位置的“路径”。如果没有这条路径,您将不得不重新扫描数组以查找数据,并跟踪通过它的路径。