我正在尝试访问一个嵌套数组(一个包含数组的数组又包含数组......)
给定数组和键的路径,我需要获取最后一个值。
给定 foo 和 a...z 我需要得到
foo[a][b][c]…[x][y][z]
请问有没有比这更优雅的方式?
function getValueRecursive(array $array, string ...$identifyer){
$value = $array;
foreach($identifyer as $key){
if(!key_exists($key, $value))
return NULL;
$value = $value[$key];
}
return $value;
}
$foo = [
'a' => [
'b' => [
'c' => "Hallo Welt!"
]
]
];
echo getValueRecursive($foo, 'a', 'b', 'c'); // Returns "Hallo Welt!"
最佳答案
<?php
$foo = [
'a' => [
'b' => [
'c' => "Hallo Welt!"
]
]
];
$result=array();
array_walk_recursive($foo, function($value,$key) use (&$result){
$result[]=$value;
});
print_r($result[0]);
或者
<?php
ini_set("display_errors", 1);
$foo = [
'a' => [
'b' => [
'c' => "Hallo Welt!"
]
]
];
echo getValueOfArray($foo,"a","b","c");
function getValueOfArray($array)
{
$args=func_get_args();
unset($args[0]);
$string="";
foreach($args as $value)
{
$string.="['$value']";
}
eval('if(isset($array'.$string.'))
{
$result= $array'.$string.';
}');
return $result;
}
输出:
Hello World !
关于php - 基于一个或多个提供的键递归访问潜在的嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344822/