php转换多维数组键名大小写,递归转换

来源:赵克立博客 分类: PHP 标签:PHP数组发布时间:2020-01-11 15:13:18最后更新:2020-01-11 17:04:45浏览:757
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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));

2001111578726791504560.png


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python