2009-08-25 7 views
6

Je voudrais récupérer la première clé de ce tableau multi-dimensionnel.Récupérer la première clé dans un tableau multi-dimensionnel en utilisant PHP

Array 
(
    [User] => Array 
     (
      [id] => 2 
      [firstname] => first 
      [lastname] => last 
      [phone] => 123-1456 
      [email] => 
      [website] => 
      [group_id] => 1 
      [company_id] => 1 
     ) 

) 

Ce tableau est stocké dans $ this-> data.

En ce moment j'utilise la clé ($ this-> data) qui récupère 'User' comme il se doit mais cela ne semble pas être la bonne façon d'atteindre le résultat.

Existe-t-il d'autres moyens de récupérer ce résultat?

Merci

+0

array_shift() fera aussi bien. – Wayne

Répondre

7

Il y a d'autres façons de le faire, mais rien aussi rapide et aussi court que l'utilisation key(). Toute autre utilisation est pour obtenir toutes les clés. Par exemple, tous retourneront la première clé dans un tableau:

$keys=array_keys($this->data); 
echo $keys[0]; //prints first key 

foreach ($this->data as $key => $value) 
{ 
    echo $key; 
    break; 
} 

Comme vous pouvez le voir les deux sont bâclés.

Si vous voulez un oneliner, mais vous voulez vous protéger contre accidentellement la mauvaise clé si l'itérateur n'est pas sur le premier élément, essayez ceci:

reset($this->data); 

reset():

reset() rembobine le pointeur interne du tableau vers le premier élément et renvoie la valeur du premier élément du tableau .

Mais ce que vous faites me va bien. Il y a une fonction qui fait exactement ce que vous voulez dans une ligne; Que pourrais-tu vouloir d'autre?

+0

Hmm Je pense que je vais utiliser cette méthode à la place. Selon le manuel PHP key() est défini comme "" key() retourne l'élément index de la position courante du tableau. "" Donc, si pour une raison quelconque nous ne sommes pas à la toute première position du tableau, cela retournera la clé incorrecte. – user103219

+0

Merci, je vais m'en tenir à la clé(). – user103219

+1

Désolé je viens de voir votre dernière édition (je pense que les modifications prennent environ une minute à poster) ... reset() était exactement ce que je cherchais. Je ne sais pas pourquoi le tableau ne serait pas à la première position mais je préfère être sûr que désolé! – user103219

0

Utilisez ce (PHP 5.5+):

echo reset(array_column($this->data, 'id')); 
+0

Pourriez-vous fournir une explication avec votre code? Cela pourrait aider OP ou les futurs utilisateurs plus. – Bono