php中array_map中发现的问题

2025-04-13 09:13:34
推荐回答(2个)
回答1:

我的理解是:
array_walk()应该是直接将数组分解成了变量,然后对其引用操作。
而array_map()是对数组的操作。先对数组遍历,每个元素再调用函数。但是数组遍历的时候没有引用。就像下面的例子,foreach的时候需要先引用数组元素,然后调用函数的时候再引用一次。
我的理解是array_map()内部遍历数组的时候没有引用,导致改变无效。


$array = array(3,4,5);

foreach($array as &$v){
map_handle($v);
}

function map_handle(&$v){
$v = '我想修改引用地址';
}
print_r($array);
?>

回答2:

$a=array(14,15,16);
function map_handle($v){
return $v='我想修改引用地址';
}
$b=array_map('map_handle',$a);
print_r($b);
不理解为什么要用引用,能否给个array_walk的代码