在 PHP 中的 array_walk() 中增加一个整数

increment an integer in a array_walk() in PHP

我需要为数组的索引 orders2 使用增量值,我尝试了以下操作:

$i = 0;
array_walk($arr1, function(&$a) {
  $i++;
  $a['orders2'] = $i;
});

其中 $i 在行 $i++; 中是未知的。

我知道我可以使用 foreach() 但我想知道 array_walk() 是否具有常规循环的行为。如有任何意见,我们将不胜感激!

$i 不在您的匿名函数的范围内。您必须告诉函数导入它:

$i = 0;
array_walk($arr1, function(&$a) use (&$i) {
  $i++;
  $a['orders2'] = $i;
});

您需要将其作为引用导入,否则它将创建 $i 的副本,而不是修改外部变量。