简体   繁体   English

从多维关联数组php通过键动态获取值

[英]get value by key dynamically from multidimensional associative array php

iam getting "undefined index error" when trying to get the numeric value dynamically. 尝试动态获取数值时,IAM收到“未定义索引错误”。

if have an array like this, 如果有这样的数组,

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

all i want to get is to get the numeric value from array like this "137401000" 我想要得到的就是从数组中获取数字值,例如“ 137401000”

when i do it like echo $area['MetroManila'][Mandaluyong]; 当我像echo $area['MetroManila'][Mandaluyong]; its okay. 没关系。 but when i get the value dynamically $area[$var][$var]; 但是当我动态获取值时, $area[$var][$var]; it returns an undefined index error. 它返回未定义的索引错误。

i have already check the value of $var and no problem with its value. 我已经检查了$ var的值,其值没有问题。

You need two different variables, one for the first dimension, another for the second dimension. 您需要两个不同的变量,一个用于第一维,另一个用于第二维。 Eg 例如

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

You have to make recursive usage of a function like this 您必须递归使用这样的函数

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM