Comment puis-je récupérer les index de tableau dans une boucle foreach?
Comment puis-je obtenir de l'index actuel dans un foreach
boucle?
foreach ($arr as $key => $val)
{
//How do I get the index?
//How do I get the first element in an associative array?
}
$key
EST l'indice actuel.
Vous devez vous connecter pour publier un commentaire.
Dans votre exemple de code, il serait juste
$key
.Si vous voulez savoir, par exemple, si c'est la première, deuxième, ou ième itération de la boucle, c'est votre seule option:
Bien sûr, cela ne signifie pas que
$val == $arr[$i]
, parce que le tableau pourrait être un tableau associatif.$i = 0;
et déplacez votre$i++;
incrementor à la fin de la boucle pour une meilleure lisibilité.continue;
instruction dans le corps de la boucle, ou n'importe qui pourrait raisonnablement ajouter dans le futur, une augmentation à la fin ne fonctionne pas. Aussi, ce qui maintient la déclaration de la variable et la valeur de l'échelon de la proximité.C'est le plus exhaustif de réponse jusqu'à présent et de se débarrasser de la nécessité d'une
$i
variable flottant autour. C'est un combo de Kip et Gnarf réponses.Espère que cela aide quelqu'un.
count($array)
semble que beaucoup de surcharge pour éviter l'introduction d'une variable scalaire$index=>$key
$key est l'index de chaque $array élément
L'indice actuel est la valeur de
$key
. Et pour l'autre question, vous pouvez également utiliser:pour obtenir le premier élément d'un tableau, en supposant que vous n'utilisez pas le
next()
,prev()
ou d'autres fonctions permettant de modifier le pointeur interne du tableau.Vous pouvez obtenir la valeur de l'indice avec cette
$key
est l'indice pour le courant de l'élément de tableau, et$val
est la valeur de cet élément de tableau.Le premier élément a un indice de 0. Par conséquent, afin d'y accéder, de l'utilisation$arr[0]
Pour obtenir le premier élément du tableau, utilisez ce
Vous pourriez obtenir le premier élément dans la
array_keys()
fonction. Ouarray_search()
les clés pour l ' "indice" de la clé. Si vous êtes à l'intérieur d'unforeach
boucle, le simple incrémentation du compteur (suggéré par kip ou cletus) est probablement votre méthode plus efficace si.bien puisque c'est la première google touché par ce problème: