从多维数组中提取值,其中动态生成键

时间:2012-08-29 05:48:05

标签: php arrays multidimensional-array

我有一个数组

$array1 = Array (
       [a1] => Array  (
               [a_name] => aaaaa
               [a_value] => aaa
             )

       [b1] => Array (
               [b_name] => bbbbb
               [b_value] => bbb
           )
       [c1] => Array (
               [c_name] => ccccc
               [c_value] => ccc
           )

     )

现在我要提取$ array1 [b1] [b_name]的值。但这里的事情是动态生成密钥(b1和b_name)。这里的情况是我有一个多维数组和我想要值的键。那么我如何获得价值。

例如

$array1[b1][b_name] 

应该返回

bbbbb

$array1[c1] 

应该返回

array([c_name]=>ccccc
       [c_value]=>ccc
   ) 

依旧......

修改

让我们保持这种方式, 第二个数组是

$array2 = Array (
         [b1] => Array (
               [b_name]=> zzzzz
             )
      )

现在相交$ array1和$ array2,我想要$ array1的值。 BBBBB

2 个答案:

答案 0 :(得分:4)

试试这个

<?php
   //you will have $firstkey and $secondkey as index values of $array1
   if (isset($firstkey) && array_key_exists($firstkey, $array1)) {
       if (isset($secondkey) && array_key_exists($secondkey, $array1[$firstkey])) {
           print_r($array1[$firstkey][$secondkey]);
       }
       else {
           print_r($array1[$firstkey]);
           echo "$secondkey does not exist";           
       }
   }
   else {
       echo "$firstkey does not exist";
   }
?>

答案 1 :(得分:0)

您可以使用foreach循环来获取键和值。我不确定,如果您只想要特定的,并且您不知道如何识别它们,它会对您有所帮助:

foreach ($array1 as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}

// From your example of the array inside a1:
// the $key would be: a_name
// the $value would be: aaaaa