如何将PHP数组的所有值更改为大写或小写

最近有个业务,上传数据的时候,有时候字段值会大写,但是查询的时候是小写,以至于经常查询不到数据,经过几次排查 才发现了问题所在。数组里面的值 有时候是大写有时候是小写。所以就需要把数组全部强制改为小写。
网上搜索找到一个代码,测试效果完美,现在分享出来。
首先我给出一个示例数组$Color,如下:

$Color = array('A' => 'Blue', 'B' => 'Green', 'c' => 'Red');

各位可以自己在本地操作一下将值转为大写或者小写。

下面是我给出的实现方法:

function array_change_value_case($input, $ucase){
    $case = $ucase;
    $narray = array();
    if (!is_array($input)){
        return $narray;
    }
    foreach ($input as $key => $value){
        if (is_array($value)){
            $narray[$key] = array_change_value_case($value, $case);
            continue;
        }
        $narray[$key] = ($case == CASE_UPPER ? strtoupper($value) : strtolower($value));
    }
    return $narray;
}

PHP完整代码如下:

$Color = array('A' => 'Blue', 'B' => 'Green', 'c' => 'Red');
echo '原始数组:';
var_dump($Color);
echo '值是小写的:';
$myColor = array_change_value_case($Color,CASE_LOWER);
var_dump($myColor);
echo '值是大写的:';
$myColor = array_change_value_case($Color,CASE_UPPER);
var_dump($myColor);

结果如下:

是不是也很简单!

这里需要大家了解三个函数:

1、is_array()函数:检测变量是否是数组,其语法是“is_array(mixed $var): bool”,如果var是 array,则返回true,否则返回false。

2、strtoupper()函数:用于把字符串转换为大写,该函数是二进制安全的,其返回值则是返回转换为大写的字符串。

3、strtolower()函数:用于把字符串转换为小写,该函数是二进制安全的,其返回值则是返回转换为小写的字符串。

发表回复

您的电子邮箱地址不会被公开。