Si j'ai:
$array = array( 'one' =>'value', 'two' => 'value2' );
comment puis-je récupérer la chaîne one
de $array[1]
?
Vous pas. Votre tableau n'a pas de clé [1]
. Vous pourriez:
Créez un nouveau tableau contenant les clés:
$newArray = array_keys($array);
echo $newArray[0];
Mais la valeur "un" est à $newArray[0]
, pas [1]
.
Un raccourci serait:
echo current(array_keys($array));
Récupère la première clé du tableau:
reset($array);
echo key($array);
Obtenir la clé correspondant à la valeur "valeur":
echo array_search('value', $array);
Tout dépend de ce que vous voulez faire exactement. Le fait est que [1]
ne correspond pas à "un" dans tous les sens.
$array = array( 'one' =>'value', 'two' => 'value2' );
$allKeys = array_keys($array);
echo $allKeys[0];
Quel sera le résultat:
one
Si vous prévoyez de ne travailler qu'avec une seule clé, vous pouvez le faire avec une seule ligne sans avoir à stocker un tableau pour toutes les clés:
echo array_keys($array)[$i];
Ou si vous en avez besoin en boucle
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
$array = array( 'one' =>'value', 'two' => 'value2' );
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
Vous pourriez le faire de cette façon:
function asoccArrayValueWithNumKey(&$arr, $key) {
if (!(count($arr) > $key)) return false;
reset($array);
$aux = -1;
$found = false;
while (($auxKey = key($array)) && !$found) {
$aux++;
$found = ($aux == $key);
}
if ($found) return $array[$auxKey];
else return false;
}
$val = asoccArrayValueWithNumKey($array, 0);
$val = asoccArrayValueWithNumKey($array, 1);
etc...
Je n'ai pas essayé le code, mais je suis à peu près sûr que cela fonctionnera.
Bonne chance!
la fonction touche m'a aidé et est très simple