可以使用引用传递的方式来解决"array_walk函数不改变值"的问题。以下是一个示例代码:
$array = [1, 2, 3];
function increment(&$value)
{
$value++;
}
array_walk($array, 'increment');
print_r($array);
在上述代码中,我们在increment
函数的参数前面加上了&
符号,将其声明为引用传递。这样,在array_walk
函数中调用increment
函数时,会传递数组元素的引用而非值。所以,在increment
函数中对数组元素的修改会直接影响到原始数组。
输出结果将为:
Array
(
[0] => 2
[1] => 3
[2] => 4
)
可以看到,原始数组的值已经被修改了。