使用未确定数量的键获取多维数组中的元素

时间:2016-09-02 11:26:51

标签: php arrays multidimensional-array

这有点奇怪,但我无法理解它。我有一个多维数组,其长度未知,维数未知。我也有像这样的一系列键:

$keys = array(0, 2, 1, 0);

现在,如果这个键数组有一个确定的大小,我就会像这样访问我的多维数组:

$multidimensional_array[$keys[0]][$keys[1]][$keys[2]][$keys[3]];

问题在于它没有,密钥数组的长度会发生很大变化。有没有人知道一个循环可以遍历键数组然后相应地访问多维数组?

1 个答案:

答案 0 :(得分:1)

假设有这样的数组:

$multidimensional_array = array(
   0 => array(
       2 => array(
           1 => array(
               0 => 'value'        
           )
       )
   )
);

这些钥匙:

$keys = array(0, 2, 1, 0);

你可以这样做:

$current = $multidimensional_array; 
foreach($keys as $key) {
    $current = $current[$key];
}

var_dump($current); //'value'

编辑:

这是一个带参考的例子。

$current = &$multidimensional_array;  // <- $current is reference
foreach($keys as $key) {
    $current = &$current[$key];   // <- $current is reference again
}

var_dump($current); //'value'
$current = 'otherValue'; // $multidimensional_array[0][2][1][0] value changed to 'otherValue'

unset($current); // remove reference to be sure you won't break something later by an accident

https://3v4l.org/OuAiQ