header("Content-type:text/html;charset=utf-8");
$arr = array(
'a' => 1,
'b' => 2,
'C' => 3,
'D'=>array(
'Ab' => 12,
'cd' =>23,
'XBS' =>array(
'GOOD'=>1
)
)
);
//******************************************* 用递归完成数组键名的大小写转换
function U_and_L_tochange($arr){
if(!is_array($arr)){
return 0;
}else{
$arr = array_change_key_case($arr, CASE_LOWER); //对$arr的键名进行大小写转换后(已经是一个重新组合的数组了,需要覆盖原来的$arr),所以赋值$arr.
foreach ($arr as $key => $value) {
if(is_array($value)){
$arr[$key] = U_and_L_tochange($value);
}
}
}
return $arr;
}
var_dump(U_and_L_tochange($arr));
//************************************************ 用递归完成数组键名的大小写转换
?>
结果:
array (size=4) 'a' => int 1 'b' => int 2 'c' => int 3 'd' => array (size=3) 'ab' => int 12 'cd' => int 23 'xbs' => array (size=1) 'good' => int 1
// *****************************************将多维数组中的奇数改写成偶数
function change_jishu($arr){
foreach ($arr as $key => $value) {
if(is_array($value)){
$arr[$key] = change_jishu($value); //改变后的值要赋值给对应的键才能对其真正修改。
}else if(($value%2)==1){
$arr[$key] = $value*2; //改变后的值要赋值给对应的键才能对其真正修改。
}
}
return $arr;
}
var_dump(change_jishu($arr));
// *********************************************将多维数组中的奇数改写成偶数
结果:
array (size=4) 'a' => int 2 'b' => int 2 'C' => int 6 'D' => array (size=3) 'Ab' => int 12 'cd' => int 46 'XBS' => array (size=1) 'GOOD' => int 2
总结;
遍历数组要用foreach()函数,如果数组中的某个键名或者值做了更改,需要将其赋给原来的数组,将其覆盖,不然更改后的数据没地方接收。