对数组的操作

来源:互联网 发布:excel sql语法大全 编辑:程序博客网 时间:2024/05/21 10:37
<?php 
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()函数,如果数组中的某个键名或者值做了更改,需要将其赋给原来的数组,将其覆盖,不然更改后的数据没地方接收。

0 0