php转换多维数组键名大小写,递归转换
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2020-01-11 17:04:45
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
默认函数array_change_key_case只转换一维数组,使用下面函数可以转换多维数组
/**
* 数组键转成大小写,递归转换
* @authname [name] 0
* @DateTime 2020-01-11
* @Author mokuyu
*
* @param [type] $arr [description]
* @param boolean $lower [description]
* @return [type]
*/
function array_change_key_case_deep($arr, $lower = true)
{
$func = $lower ? 'strtolower' : 'strtoupper';
$_newArr = [];
if (!is_array($arr) || empty($arr)) {
return $_newArr;
}
foreach ($arr as $k => $v) {
$_newArr[(is_numeric($k) ? $k : $func($k))] = is_array($v) ? array_change_key_case_deep($v, $lower) : $v;
}
return $_newArr;
}
$arr2 = [
'osS' => [
'on' => true,
'domain' => 'www.res.com',
'tesT' => [
'test2' => 3,
],
],
];
var_dump(array_change_key_case($arr2));
var_dump(array_change_key_case_deep($arr2));