Comment faire une boucle à travers un tableau associatif et obtenir la clé? [dupliquer]
-
21-09-2019 - |
Question
Cette question a déjà une réponse ici:
- valeur de clé de boucle PHP foreach 4 réponses
Mon tableau associatif:
$arr = array(
1 => "Value1",
2 => "Value2",
10 => "Value10"
);
En utilisant le code suivant, $v
est rempli avec les valeurs de $arr
foreach($arr as $v){
echo($v); // Value1, Value2, Value10
}
Comment puis-je obtenir les clés de la place $arr
?
foreach(.....){
echo($k); // 1, 2, 10
}
La solution
Vous pouvez faire:
foreach ($arr as $key => $value) {
echo $key;
}
Comme décrit dans documents PHP .
Autres conseils
Si vous utilisez array_keys()
, PHP vous donnera un tableau rempli avec seulement les touches:
$keys = array_keys($arr);
foreach($keys as $key) {
echo($key);
}
Vous pouvez faire ceci:
foreach($arr as $key => $value) {
echo($key);
}
Personne n'a répondu avec boucle for
régulière? Parfois, je trouve plus lisible et plus for
préfère foreach
Alors voici:
$array = array('key1' => 'value1', 'key2' => 'value2');
$keys = array_keys($array);
for($i=0; $i < count($keys); ++$i) {
echo $keys[$i] . ' ' . $array[$keys[$i]] . "\n";
}
/*
prints:
key1 value1
key2 value2
*/
foreach($array as $k => $v)
Où k $ est la clé et v $ est la valeur
Ou si vous avez juste besoin les clés utilisent array_keys ()
J'utilise la boucle suivante pour obtenir la clé et la valeur d'un tableau associatif
foreach ($array as $key => $value)
{
echo "<p>$key = $value</p>";
}
Ce qui suit vous permettra d'obtenir à la fois la clé et la valeur en même temps.
foreach ($arr as $key => $value)
{
echo($key);
}
Bien que cette méthode est sans doute moins claire plus rapide d'environ un facteur d'environ 3,5 (au moins sur la case I utilisé pour tester)
$foo = array(
1 => "Value1",
2 => "Value2",
10 => "Value10"
);
while($bar = each($foo)){
echo $bar[0] . " => " . $bar[1];
}
Je suppose que cela est dû au fait que les copies foreach le tableau entier avant itérer dessus.
Utilisez $key => $val
pour obtenir les clés:
<?php
$arr = array(
1 => "Value1",
2 => "Value2",
10 => "Value10",
);
foreach ($arr as $key => $val) {
print "$key\n";
}
?>
<?php
$names = array("firstname"=>"maurice",
"lastname"=>"muteti",
"contact"=>"7844433339");
foreach ($names as $name => $value) {
echo $name." ".$value."</br>";
}
print_r($names);
?>
Oh je l'ai trouvé dans le manuel PHP .
foreach ($array as $key => $value){
statement
}
sera attribué la clé de l'élément courant à la variable $ key sur chaque boucle.
foreach($arr as $key=>$value){
echo($key); // key
}
Si vous utilisez la fonction foreach()
imbriqué, les clés de tableau externe imprimer encore et encore jusqu'à la fin des valeurs du tableau interne.
<?php
$myArray = ['key_1' => ['value_1', 'value12'],
'key_2' => ['value_2', 'value22'],
'key_3' => ['value_3', 'value32']
];
$keysOfMyArray = array_key($myArray);
for ($x = 0; $x < count($myArray); $x++){
print "\t".$keysOfMyArray[$x]."\t\t".implode("\t\t",$myArray[$keysOfMyArray[$x]]."\n");
}
?>