¿Cómo encontrar el índice foreach?
¿Es posible encontrar el foreach
índice?
en un for
bucle de la siguiente manera:
for ($i = 0; $i < 10; ++$i) {
echo $i . ' ';
}
$i
Te daré el índice.
¿Tengo que usar el for
bucle o hay alguna forma de incluir el índice en el foreach
bucle?
foreach($array as $key=>$value) {
// do stuff
}
$key
es el índice de cada $array
elemento
Puede introducir un truco en su archivo foreach
, como un campo incrementado en cada ejecución, que es exactamente lo que for
le 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 foreach
le dará su índice en forma de $key
valor, 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++;
}
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.
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
}
Puede crear $i
fuera del bucle y hacerlo $i++
en la parte inferior del bucle.