-3

当我想迭代一个数组时,我通常会这样做:

foreach ($array as $a)
{
   //do something with $a
}

我只想知道是否可以用for循环做这样的事情:

for ($i = 0; $i < count($array); $a = $array[$i]; $i ++)
{
   //do something with $a
}

编辑:当我测试上面的代码时, for 语法无效。

4

4 回答 4

1

The for loop doesn't need to handle the $a = $array[$i]; as part of its arguments. You can just move it to the body of the loop, something like this: for ($i = 0; $i < count($array); $i++){
$a = $array[$i]; //do something with $a }

于 2013-05-01T18:40:03.957 回答
1

跳过 for 循环的 $a = $array[$i] 部分(这是在循环的内部分配的,而不是在循环的声明中)

你应该这样做:

for ($i = 0; $i < count($array); $i ++)
{
   $a = $array[$i]; //Gets value of element in array $array
   //Do something with it...
}

你说你想控制一个数组的元素。您可以通过这样做(在 foreach 循环中添加键值)来做等价

foreach ($array as $key=>$i)
{
   $a = $i[$key];
}
于 2013-05-01T18:37:46.470 回答
1

用逗号替换第三个分号。这不是整个解决方案(分配完成得太晚),但它应该充分解释 for 语句的工作原理。

于 2013-05-01T18:32:26.630 回答
0
for ($i = 0; $i < count($array);  $i ++){
    $a = $array[$i];
}

for 循环定义采用您提供的四个语句。将 $a 的赋值移动到实际循环中。

于 2013-05-01T18:38:20.303 回答