Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用另一个数组的键从多维数组返回值_Php_Arrays - Fatal编程技术网

Php 使用另一个数组的键从多维数组返回值

Php 使用另一个数组的键从多维数组返回值,php,arrays,Php,Arrays,基本上这就是我所拥有的 $foo = array( 'bar' = array( 'baz' = array( 5 ) ), ); 我还有另一个数组,里面有钥匙 $keys = array('bar','baz',0); 有没有办法用第二个数组中的键来获取第一个数组的值?我可能会尝试编写一些递归函数,最终完成这项工作,但我想知道是否有一种通过使用数组函数(这些函数不是很好)或其他方法来完成这项工作的好方法 注意:键不一定

基本上这就是我所拥有的

$foo = array(
    'bar' = array(
        'baz' = array(
            5
        )
    ),
);
我还有另一个数组,里面有钥匙

$keys = array('bar','baz',0);
有没有办法用第二个数组中的键来获取第一个数组的值?我可能会尝试编写一些递归函数,最终完成这项工作,但我想知道是否有一种通过使用数组函数(这些函数不是很好)或其他方法来完成这项工作的好方法


注意:键不一定总是3。

您可以尝试类似的方法,它应该可以工作

$arr = $foo;
foreach($keys as $key)
{
   $arr = $arr[$key];
}

echo $arr; // 5

这可能就是你要找的。(无法100%确定这是否有帮助)

您可以在以下屏幕上看到所有阵列函数: 一些简单的方法可能会奏效:

   /function.array-fill-keys.php
   /function.array-fill.php
  /function.array-keys.php

除了使用递归,没有其他方法了。你需要某种类型的
array\u reduce
,它接受两个数组参数并遍历这两个参数,这项任务过于专业化,无法使其成为内置函数。想想我在问这个问题之前就已经开始编写递归函数了,天哪!非常感谢。每次我说服自己,我认为问题越复杂,它实际上就越少。我就是这样,写了一些复杂的东西。是的,在这种情况下,不需要使用复杂的东西,比如纯recursion@Martijn我知道那种感觉D