您的位置:首页 > 编程语言 > PHP开发

php递归获取一个数组中指定key的值

2017-09-26 10:15 656 查看
/**
* 递归获取一个数组中指定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
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: