最近有个业务,上传数据的时候,有时候字段值会大写,但是查询的时候是小写,以至于经常查询不到数据,经过几次排查 才发现了问题所在。数组里面的值 有时候是大写有时候是小写。所以就需要把数组全部强制改为小写。
网上搜索找到一个代码,测试效果完美,现在分享出来。
首先我给出一个示例数组$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()函数:用于把字符串转换为小写,该函数是二进制安全的,其返回值则是返回转换为小写的字符串。