PHP-obtenir l'index d'un élément à partir d'un tableau
Comment puis-je obtenir le numéro d'élément actuel lorsque je traverse un tableau?
Je connais count (), mais j'espérais qu'il y ait une fonction intégrée pour obtenir l'index de champ actuel, sans avoir à ajouter une variable de compteur supplémentaire.
Comme ceci:
foreach($array as $key => value)
if(index($key) == count($array) ....
6 réponses
Les tableaux PHP sont indexés en entier et indexés en chaîne. Vous pouvez même les mélanger:
array('red', 'green', 'white', 'color3'=>'blue', 3=>'yellow');
Que voulez-vous que l'index soit pour la valeur 'blue'
? Est-il 3? Mais c'est en fait l'index de la valeur 'yellow'
, donc ce serait une ambiguïté.
Une autre solution pour vous consiste à forcer le tableau à une liste de valeurs indexées sur des entiers.
foreach (array_values($array) as $i => $value) {
echo "$i: $value\n";
}
Sortie:
0: red
1: green
2: white
3: blue
4: yellow
function Index($index) {
$Count = count($YOUR_ARRAY);
if ($index <= $Count) {
$Keys = array_keys($YOUR_ARRAY);
$Value = array_values($YOUR_ARRAY);
return $Keys[$index] . ' = ' . $Value[$index];
} else {
return "Out of the ring";
}
}
echo 'Index : ' . Index(0);
Remplacez le ($YOUR_ARRAY)
Un tableau ne contient pas d'index lorsque les éléments sont associatifs. Un tableau en php peut contenir des valeurs mixtes comme ceci:
$var = array("apple", "banana", "foo" => "grape", "carrot", "bar" => "donkey");
print_r($var);
Vous Donne:
Array
(
[0] => apple
[1] => banana
[foo] => grape
[2] => carrot
[bar] => donkey
)
Qu'essayez-vous d'accomplir puisque vous avez besoin de la valeur d'index dans un tableau associatif?
Il n'y a aucun moyen d'obtenir un position que vous voulez vraiment.
Pour le tableau associatif, pour déterminer la dernière itération, vous pouvez utiliser la variable compteur déjà mentionnée, ou déterminer la clé du dernier élément en premier:
end($array);
$last = key($array);
foreach($array as $key => value)
if($key == $last) ....