PHP 中 array_walk() 中的整数递增

Rez*_*eri 1 php array-walk

我需要对orders2数组的索引使用递增值,并且我尝试了以下操作:

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

$i行中说的是未知$i++;

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

ric*_*aan 7

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

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

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