web-dev-qa-db-fra.com

Comment obtenir la position d'une clé dans un tableau

Ok, donc j'ai besoin de saisir la position de 'blah' dans ce tableau (la position ne sera pas toujours la même). Par exemple:

$array = (
    'a' => $some_content,
    'b' => $more_content,
    'c' => array($content),
    'blah' => array($stuff),
    'd' => $info,
    'e' => $more_info,
);

Donc, je voudrais pouvoir retourner le numéro de l'emplacement de la touche "blah" dans le tableau. Dans ce scénario, il devrait retourner 3. Comment puis-je le faire rapidement? Et sans affecter du tout le tableau $ array.

33
SoLoGHoST
$i = array_search('blah', array_keys($array));
87
zerkms

Si vous savez que la clé existe:

PHP 5.4 ( Démo ):

echo array_flip(array_keys($array))['blah'];

PHP 5.3:

$keys = array_flip(array_keys($array));
echo $keys['blah'];

Si vous ne savez pas que la clé existe, vous pouvez vérifier avec isset:

$keys = array_flip(array_keys($array));
echo isset($keys['blah']) ? $keys['blah'] : 'not found' ;

C'est simplement comme array_search mais utilise la carte qui existe déjà dans n'importe quel tableau. Je ne peux pas dire si c'est vraiment mieux que array_search, cela peut dépendre du scénario, donc juste une autre alternative.

6
hakre

$keys=array_keys($array); vous donnera un tableau contenant les clés de $array

Ainsi, array_search('blah', $keys); vous donnera l'index de blah dans $keys Et donc, $array

0
Pranav Hosangadi