默认函数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));