php递归获取一个数组中指定key的值
/**
* 递归获取一个数组中指定key的值
* @param $array
* @param $keys
* @param string $delimiter
* @return mixed
*/
function get_deep_value($array, $keys, $delimiter = ".")
{
$keys = explode($delimiter, $keys);
$key = array_shift($keys);
if (sizeof($keys) > 0 && isset($array[$key])) {
return get_deep_value($array[$key], implode($delimiter, $keys), $delimiter);
} else {
return $array[$key] ?? null;
}
}
$a = [
"a" => [
"b" => "error",
"c" => [
"d" => [
"e" => [
"f" => "ok",
]
]
]
]
];
var_dump(get_deep_value($a, "a.c.d.e.f"));
/**
* 输出:
* string(2) "ok"
*/
var_dump(get_deep_value($a, "a.b"));
/**
* 输出:
* string(5) "error"
*/
var_dump(get_deep_value($a, "a.b.c"));
/**
* 输出:
* NULL
*/
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。