75 votes

Comment obtenir une seule valeur de ce tableau PHP multidimensionnel

Exemple print_r($myarray)

Array
(
    [0] => Array
    (
        [id] => 6578765
        [name] => John Smith
        [first_name] => John
        [last_name] => Smith
        [link] => http://www.example.com
        [gender] => male
        [email] => email@example.com
        [timezone] => 8
        [updated_time] => 2010-12-07T21:02:21+0000
    )
)

Question, comment obtenir le $myarray en une seule valeur comme :

echo $myarray['email'];  va montrer email@example.com

4 votes

Pouvez-vous clarifier ce que vous entendez par "single format"?

0 votes

Je ne sais pas comment l'appeler. mais à partir du tableau je veux obtenir les données une par une.

2 votes

Echo $myarray['email'] affiche email@domain.com, une seule valeur. Il n'est pas clair ce que vous demandez!

115voto

Dan Grossman Points 31514

Regardez les clés et l'indentation dans votre print_r:

echo $myarray[0]['email'];

echo $myarray[0]['gender'];

...etc

0 votes

Je peux renvoyer une clé de la manière suivante mais uniquement sur mon instance locale : echo myarray()["baseurl"]; lorsque je pousse vers un serveur distant, j'obtiens une erreur d'analyse/syntaxe. Pourquoi est-ce que ça se passe ainsi ?

2 votes

@MichelJoanisse probablement parce que vous utilisez une version plus ancienne de PHP sur votre serveur distant. Cette syntaxe n'est pas prise en charge dans PHP <5.4 (php.net/manual/en/language.types.array.php#example-102).

44voto

Virendra Yadav Points 431

Utilisez la array_shift fonction

$myarray = array_shift($myarray);

Cela déplacera les éléments du tableau d'un niveau et vous pourrez accéder à n'importe quel élément du tableau sans utiliser la clé [0]

echo $myarray['email'];

affichera email@example.com

22voto

Mike Axiak Points 6349

Je pense que tu veux ceci :

foreach ($myarray as $key => $value) {
    echo "$key = $value\n";
}

0 votes

Oui! celui-ci. J'ai eu le retour 0 = Array mais quand j' print_r($myarray) affiche la sortie.

0 votes

Trouvé en mettant $myarray[0]. Merci de m'avoir appris quelque chose de nouveau :P

12voto

Francesco Casula Points 2508

Vous pouvez également utiliser array_column(). Il est disponible à partir de PHP 5.5 : php.net/manual/en/function.array-column.php

Cela renvoie les valeurs d'une seule colonne du tableau, identifiée par la column_key. Optionnellement, vous pouvez fournir un index_key pour indexer les valeurs dans le tableau retourné par les valeurs de la colonne index_key dans le tableau d'entrée.

print_r(array_column($myarray, 'email'));

1 votes

Je me suis connecté simplement pour aimer ceci.

1voto

Masad Ashraf Points 51
echo $myarray[0]->['email'];

Essayez ceci seulement si vous passez l'objet stdclass

1 votes

Pourriez-vous donner plus de contexte à l'auteur original? Comme expliquer ce qui ne fonctionne pas dans son code et comment le changement suggéré le corrigera. Et peut-être détailler ce qu'est l'objet stdclass.

1 votes

Il reçoit un tableau 2D et veut la première valeur du tableau 2D. Donc s'il passe son objet du contrôleur à la vue, comme dans Laravel (cadre MVC), ses vues obtiennent un objet de type stdClass. Et à partir de cet objet stdClass, si une personne veut une seule valeur, elle peut imprimer sa valeur comme je l'ai mentionné ci-dessus. Pour plus d'objets stdClass en PHP, consultez le lien suivant : php.net/manual/en/language.types.object.php

0 votes

Cela ne fonctionne vraiment pas. 3v4l.org/VRo2O

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X