Comment faire une boucle à travers un tableau associatif et obtenir la clé? [dupliquer]

StackOverflow https://stackoverflow.com/questions/1951690

  •  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
 }
Était-ce utile?

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");
}

?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top