重新学习一下数组函数,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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!