So erhalten Sie einen einzelnen Wert aus diesem mehrdimensionalen PHP-Array

73

Beispiel 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 protected]
        [timezone] => 8
        [updated_time] => 2010-12-07T21:02:21+0000
    )
)

Frage, wie man den $myarrayEinzelwert erhält wie:

echo $myarray['email'];  will show [email protected]
Beeindruckend
quelle
4
Können Sie klarstellen, was Sie unter "Einzelformat" verstehen?
Arkaaito
Ich weiß nicht, wie ich es nennen soll. aber vom Array möchte ich die Daten einzeln erhalten.
Wow
2
echo $ myarray ['email'] Zeigt [email protected] an, einen einzelnen Wert. Es ist nicht klar, was Sie fragen!
Dan Grossman
@ Dan Grossman LOL Okay, lass mich ein Beispiel machen. $myarrayaus diesem Array wie bekomme ich die Ausgabe für first_name, genderoder usw.
wow

Antworten:

112

Schauen Sie sich die Schlüssel und Einrückungen in Ihrem an print_r:

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

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

...etc

Dan Grossman
quelle
Ich kann einen Schlüssel folgendermaßen wiedergeben, jedoch nur auf meiner lokalen Instanz: echo myarray()["baseurl"];Wenn ich auf einen Remote-Server pushe, wird ein Analyse- / Syntaxfehler angezeigt. Warum das?
Michel Joanisse
2
@MichelJoanisse wahrscheinlich, weil Sie eine ältere PHP-Version auf Ihrem Remote-Server verwenden. Diese Syntax wird in PHP <5.4 ( php.net/manual/en/language.types.array.php#example-102 ) nicht unterstützt .
Samuel Lindblom
43

Verwenden Sie array_shiftFunktion

$myarray = array_shift($myarray);

Dadurch werden Array-Elemente um eine Ebene nach oben verschoben, und Sie können auf jedes Array-Element zugreifen, ohne den [0]Schlüssel zu verwenden

echo $myarray['email'];  

zeigt [email protected] an

Virendra Yadav
quelle
22

Ich denke du willst das:

foreach ($myarray as $key => $value) {
    echo "$key = $value\n";
}
Mike Axiak
quelle
Ja! dieses. Ich habe 0 = Arrayaber zurück, wenn ich print_r($myarray)die Ausgabe zeige.
Wow
Habe es per Put bekommen $myarray[0]. Danke, lass mich etwas Neues lernen: P
wow
10

Sie können auch verwenden array_column(). Es ist ab PHP 5.5 verfügbar: php.net/manual/en/function.array-column.php

Es gibt die Werte aus einer einzelnen Spalte des Arrays zurück, die durch den Spaltenschlüssel identifiziert wird. Optional können Sie einen Indexschlüssel angeben, um die Werte im zurückgegebenen Array anhand der Werte aus der Spalte index_key im Eingabearray zu indizieren.

print_r(array_column($myarray, 'email'));
Francesco Casula
quelle
1
Ich habe mich nur angemeldet, um das zu mögen.
Jasom Dotnet
2
echo $myarray[0]->['email'];

Versuchen Sie dies nur, wenn Sie das passieren stdclass object

Masad Ashraf
quelle
1
Könnten Sie dem Originalplakat mehr Kontext geben? Erklären Sie gerne, was in seinem Code nicht funktioniert und wie die vorgeschlagene Änderung das Problem behebt. Und vielleicht detailliert was ist stdclass object.
JeromeFr
1
Er erhält ein 2d-Array und möchte einen ersten Wert für ein 2d-Array. Wenn er also sein Objekt wie in Laravel (MVC-Framework) vom Controller an die Ansicht übergibt, erhalten seine Ansichten das Objekt stdclass. Und von diesem stdclass-Objekt kann eine Person, wenn sie einen einzelnen Wert möchte, ihren Wert wie oben erwähnt drucken. Für mehr stdclass Objekte in PHP Link: php.net/manual/en/language.types.object.php
Masad Ashraf
1

Das erste Element von $myarrayist das gewünschte Wertearray. Also, gerade jetzt,

echo $myarray[0]['email']; // This outputs '[email protected]'

Wenn Sie möchten, dass dieses Array wird $myarray, müssen Sie es nur tun

$myarray = $myarray[0];

Jetzt wird $myarray['email']usw. wie erwartet ausgegeben.

v64
quelle