How to find the foreach index


Question

Is it possible to find the foreach index?

in a for loop as follows:

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

$i will give you the index.

Do I have to use the for loop or is there some way to get the index in the foreach loop?

1
434
12/14/2017 3:16:21 AM

Accepted Answer

foreach($array as $key=>$value) {
    // do stuff
}

$key is the index of each $array element

806
5/15/2014 7:24:45 PM

You can put a hack in your foreach, such as a field incremented on each run-through, which is exactly what the for loop gives you in a numerically-indexed array. Such a field would be a pseudo-index that needs manual management (increments, etc).

A foreach will give you your index in the form of your $key value, so such a hack shouldn't be necessary.

e.g., in a foreach

$index = 0;
foreach($data as $key=>$val) {
    // Use $key as an index, or...

    // ... manage the index this way..
    echo "Index is $index\n";
    $index++;
}

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon