本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑
php 怎么更改关联数组?
php修改关联数组
有以下需求,遍历数组并且对数组的值做出相应改变,例如,全部设为0;
如果数组全部都是索引数组就好办了,直接用for()边遍历边修改。
但如果是关联数组就蛋疼,遍历索引数组就要用foreach,但是foreach是只读的,就是说,无法做出修改。
现在有三种办法:
做一个中间临时数组:temp = array()。然后就是边遍历边赋值进去。
用回调函数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;
}
注意:不要企图改变键值,键值不能是引用