从多维关联数组php

时间:2019-07-04 00:58:10

标签: php arrays associative-array

尝试动态获取数值时,会收到“未定义索引错误”。

如果有这样的数组,

$area =  array( 
    'MetroManila' => array ('Manila'=>'133900000', 'Mandaluyong'=>'137401000', 'Marikina'=>'137402000'),
    'Bataan' =>array('Abucay'=>'030801000', 'Bagac'=>'030802000', 'Balanga'=>'030803000', ),
);

我想要得到的就是从这样的数组中获取数值 “ 137401000”

当我这样做时,像回声$area['MetroManila'][Mandaluyong];一样可以。 但是当我动态获取值$area[$var][$var];时,它将返回未定义的索引错误。

我已经检查了$ var的值,其值没有问题。

2 个答案:

答案 0 :(得分:1)

您需要两个不同的变量,一个用于第一维,另一个用于第二维。例如。

$province = 'MetroManila';  
$city = 'Mandaluyong'; 
echo $area[$province][$city];

答案 1 :(得分:0)

您必须递归使用此类函数

$area =  array( 
   'MetroManila' => array ('Manila'=>'133900000', 
'Mandaluyong'=>'137401000', 'Marikina'=>'137402000'),
'Bataan' =>array('Abucay'=>'030801000', 'Bagac'=>'030802000', 'Balanga'=>'030803000', ),
);
$arr=[];
 array_walk_recursive(
      $area, 
      function($k) use (&$arr) {
           $arr[]=$k;
       }
 );
print_r($arr);