PHP-从键数组中获取嵌套数组的值

PHP-从键数组中获取嵌套数组的值,php,arrays,loops,nested,Php,Arrays,Loops,Nested,我有以下资料: $values = Array ( ['level1'] => Array ( ['level2'] => Array( ['level3'] => 'Value' ) ) ) 我还有一系列的钥匙: $keys = Array ( [0] => 'level1',

我有以下资料:

$values = Array (
          ['level1'] => Array (
             ['level2'] => Array(
                 ['level3'] => 'Value'
                 )
              )
          )
我还有一系列的钥匙:

$keys = Array (
          [0] => 'level1',
          [1] => 'level2',
          [2] => 'level3'
        )

我希望能够使用$keys数组,这样我就可以得出:$value['level1']['level2']['level3']。级别数和键名称将更改,因此我需要一个解决方案,该解决方案将读取我的$keys数组,然后在$values中循环,直到得到最终值。

您可以迭代
$values
并存储
$ref
,如下所示:

$ref = $values ;
foreach ($keys as $key) {
    if (isset($ref[$key])) {
        $ref = $ref[$key];
    }
}
echo $ref ; // Value
您还可以使用引用(
&
)来避免数组的复制:

$ref = &$values ;
foreach ($keys as &$key) {
    if (isset($ref[$key])) {
        $ref = &$ref[$key];
    }
}
echo $ref ;

好吧,我想我理解这个问题了。您的尝试在哪里?如果anwser解决了您的问题,请不要忘记关闭您的问题:)谢谢!
<?php

$values['level1']['level2']['level3'] = 'Value';
$keys = array (
          0 => 'level1',
          1 => 'level2',
          2 => 'level3'
        );


$vtemp = $values;

foreach ($keys as $key) {

    try {
        $vtemp = $vtemp[$key];
        print_r($vtemp);
        print("<br/>---<br/>");
    }
    catch (Exception $e) {
        print("Exception $e");  
    }

}