重新学习一下数组函数,array_change_key_case
函数:
array_change_key_case(array $array [, int $case = CASE_LOWER ]) :array
将数组中的所有键名改为全小写 或是大写, 本函数不改变数字索引。
默认值为 CASE_LOWER 小写,相对应的 大写是 CASE_UPPER。
例:
$array = array('First'=>1,'SecOnd'=>2);
$result = array_change_key_case($array, CASE_UPPER);
var_dump($result);
结果为:
array('FIRST'=>1,'SECOND'=>2)
有一种特殊情况 除外:
$arr = array("FirSt" => 1, "yağ" => "Oil", "şekER" => "sugar");
这种特殊字符需要进行一下编码的特殊处理。这里用到了另外一个函数
mb_convert_case(string $str, int $mode [, string $encoding = mb_internal_encoding()] )
--对字符串进行大小写转换
参数:
str 要被转换的string 字符串
mode 要被转换的 模式 有三个参数 MB_CASE_UPPER 、 MB_CASE_LOWER、 MB_CASE_TITLE
MB_CASE_UPPER:字符串全部大写
MB_CASE_LOWER:字符串全部小写
MB_CASE_TITLE:字符串各单词首字母大写
encoding 参数为字符编码,如果省略了,则会使用内部字符编码 (这个内部字符编码暂时还没找到默认是什么,哪个大神知道,指导一下小弟)
处理函数实例:如有不同方法,请各位补充一下()
function array_change_key_case_unicode($array, $case = CASE_LOWER)
{
$case = ($case == CASE_LOWER) ? MB_CASE_LOWER : MB_CASE_UPPER;
foreach($array as $key => $value){
$result[mb_convert_case($key, $case, 'UTF_8')] = $value;
}
return $result;
}
结果:
print_r(array_change_key_case($arr, CASE_UPPER));
Array
(
[FIRST] => 1
[YAğ] => Oil
[şEKER] => sugar
)
print_r(array_change_key_case_unicode($arr, CASE_UPPER));
Array
(
[FIRST] => 1
[YAĞ] => Oil
[ŞEKER] => sugar
)
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: