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

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

echo $myarray['email'];  will show email@domain.com

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@domain.com 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


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@domain.com an


22

Ich denke du willst das:

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

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'));

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


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@domain.com'

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.