¿Cómo encontrar el índice foreach?

Resuelto user18334 asked hace 54 años • 14 respuestas

¿Es posible encontrar el foreachíndice?

en un forbucle de la siguiente manera:

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

$iTe daré el índice.

¿Tengo que usar el forbucle o hay alguna forma de incluir el índice en el foreachbucle?

user18334 avatar Jan 01 '70 08:01 user18334
Aceptado
foreach($array as $key=>$value) {
    // do stuff
}

$keyes el índice de cada $arrayelemento

Owen avatar Sep 26 '2008 18:09 Owen

Puede introducir un truco en su archivo foreach, como un campo incrementado en cada ejecución, que es exactamente lo que forle proporciona el bucle en una matriz indexada numéricamente. Un campo de este tipo sería un pseudoíndice que necesita gestión manual (incrementos, etc.).

A foreachle dará su índice en forma de $keyvalor, por lo que dicho truco no debería ser necesario.

por ejemplo, en unforeach

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

    // ... manage the index this way..
    echo "Index is $index\n";
    $index++;
}
ConroyP avatar Sep 26 '2008 18:09 ConroyP

Cabe señalar que puede llamar key()a cualquier matriz para encontrar la clave actual. Como puede adivinar, current()devolverá el valor actual y next()moverá el puntero de la matriz al siguiente elemento.

Bailey Parker avatar Mar 04 '2011 11:03 Bailey Parker

Owen tiene una buena respuesta. Si desea solo la clave y está trabajando con una matriz, esto también podría ser útil.

foreach(array_keys($array) as $key) {
//  do stuff
}
Zoredache avatar Sep 26 '2008 21:09 Zoredache

Puede crear $ifuera del bucle y hacerlo $i++en la parte inferior del bucle.

Ólafur Waage avatar Sep 26 '2008 18:09 Ólafur Waage