【发布时间】:2012-09-27 00:00:43
【问题描述】:
PHP 版本 5.3.2-1ubuntu4.15
1、起始值:
$value_array = array('0.000','2.530',8);
$op_value = 2;
试试这个:
foreach($value_array as &$source_value) {
$source_value = $source_value + $op_value;
}
并得到 $value_array == (2,4.53,10);
但是如果你运行这个:
array_walk($value_array,function(&$source_value) {
$source_value = $source_value + $op_value;
});
你得到 $value_array == (0,2.53,8);
第一个给出了预期的结果,第二个没有。但它确实做了一些事情。多余的 0 最终被砍掉了。
这是为什么?我想使用 array_walk,但现在必须使用 foreach。
【问题讨论】:
-
$op_value 来自哪里? - 在回调中不可用。
-
这一定是答案。我必须将它作为第二个参数添加到
array_walk,不是吗?哎呀。 -
不是
array_walk的第二个参数,而是function()的参数之一 - 或者使用@Barmar 提到的use -
ubuntu 4.15?是时候更新了? ;)
-
@JordanArseno - 这不是 php 版本字符串中的操作系统版本,这是 PHP 的 ubuntu 特定版本
标签: php