650 Stimmen

Wie findet man den foreach-Index?

Ist es möglich, die foreach Index?

in einem for Schleife wie folgt:

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

$i erhalten Sie den Index.

Muss ich die for Schleife oder gibt es eine Möglichkeit, den Index in der foreach Schleife?

1186voto

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

$key ist der Index der einzelnen $array Element

214voto

ConroyP Punkte 39832

Sie können einen Hack in Ihrem foreach wie zum Beispiel ein Feld, das bei jedem Durchlauf inkrementiert wird, was genau das ist, was die for Schleife in einem numerisch indizierten Array zu finden. Ein solches Feld wäre ein Pseudo-Index, der manuell verwaltet werden muss (Inkremente usw.).

A foreach erhalten Sie Ihren Index in Form Ihrer $key Wert, so dass ein solcher Hack nicht notwendig sein sollte.

z.B. in einer 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++;
}

33voto

Bailey Parker Punkte 15051

Es ist zu beachten, dass Sie key() auf ein beliebiges Array, um den aktuellen Schlüssel zu finden, auf dem es sich befindet. Wie Sie sich denken können current() gibt den aktuellen Wert zurück und next() verschiebt den Zeiger des Arrays auf das nächste Element.

25voto

Zoredache Punkte 34350

Owen hat eine gute Antwort. Wenn Sie nur den Schlüssel wollen, und Sie arbeiten mit einem Array könnte dies auch nützlich sein.

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

19voto

Ólafur Waage Punkte 66497

Sie können erstellen $i außerhalb der Schleife und tun $i++ am Ende der Schleife.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X