получить значение по ключу динамически из многомерного ассоциативного массива php - PullRequest
0 голосов
/ 04 июля 2019

Я получаю «неопределенную ошибку индекса» при попытке получить числовое значение динамически.

если есть массив, подобный этому,

$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 ]

1 голос
/ 04 июля 2019

Вам нужны две разные переменные, одна для первого измерения, другая для второго измерения.Например,

$province = 'MetroManila';  
$city = 'Mandaluyong'; 
echo $area[$province][$city];
0 голосов
/ 04 июля 2019

Вы должны сделать рекурсивное использование функции, подобной этой

$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);
...