php修改关联数组

有以下需求,遍历数组并且对数组的值做出相应改变,例如,全部设为0;
 
如果数组全部都是索引数组就好办了,直接用for()边遍历边修改。
 
但如果是关联数组就蛋疼,遍历索引数组就要用foreach,但是foreach是只读的,就是说,无法做出修改。
现在有三种办法:
 
1、做一个中间临时数组:temp = array()。然后就是边遍历边赋值进去。
 
2、用回调函数array_map()
示例:
$arr = array_map(function($p) {return 0;}, $arr);               //p代表了元素的值,一个一个来
这样就可以全部设置'了。
 
 
或者:
array_walk($arr, function(&$value, $key) {
     $value = 0;
});
 
上述两种方法都是在原来数组修改,不产生新数组
 
第三种,也是最简单的方法:
 
foreach($arr as $k => &$v) {
     $v = 0;
}
 
注意:不要企图改变键值,键值不能是引用

posted on 2013-03-13 11:23  bgwan  阅读(385)  评论(0编辑  收藏  举报

导航