如何找到foreach循环的索引?

649

是否可以在以下的 for 循环中找到 foreach 的索引?

for ($i = 0; $i < 10; ++$i) {
   echo $i . ' ';
}

$i 将会给你索引。

我是否必须使用 for 循环,或者在 foreach 循环中有没有某种方法可以获取索引?

14个回答

3

在使用关联数组时,我通常会这样做:

foreach ($assoc_array as $key => $value) {
 //do something
}

这也适用于非关联数组。$key将是索引值。如果您喜欢,也可以这样做:

foreach ($array as $indx => $value) {
  //do something
}

4
“alternative” 是用来做什么的?你知道这两者是一样的,除了变量名不同吗?所以我认为最后一句话和代码块都是没必要的——如果有任何作用,它们只会让人感到困惑。 - Dennis98
@Dennis98 两者之间的区别在于一个具有关联数组作为输入,而另一个具有数字数组。虽然我想如果答案再详细一些会更好。 - I_ATE_YOUR_WORK_FILES

3

当我需要在同一上下文中使用foreach索引和值时,我是这样解决的:

$array = array('a', 'b', 'c');
foreach ($array as $letter=>$index) {

  echo $letter; //Here $letter content is the actual index
  echo $array[$letter]; // echoes the array value

}//foreach


-1
foreach(array_keys($array) as $key) {
//  do stuff
}

-2

我想添加这个,我在 Laravel 中使用它来索引我的表:

  • 使用 $loop->index
  • 我还使用 ++$loop 进行预增量,以从 1 开始

我的代码:

@foreach($resultsPerCountry->first()->studies as $result)
  <tr>
    <td>{{ ++$loop->index}}</td>                                    
  </tr>
@endforeach

2
这个问题并不是针对 Laravel 提出的。$loop 变量不能使用,因为它是针对一般的 PHP 提出的。 - Özgür Can Karagöz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接