2016-09-22 23 views
2

Mit einem API-Aufruf Ich hole eine Reihe von Datenobjekte in einem Array gespeichert, aber ich möchte nur einige der zurückgegebenen Objekte ausdrucken.Zugriff auf explizite Objekte innerhalb eines Arrays

Alle Daten werden in der Variablen $mail gespeichert. Ich suche zum Beispiel geliefert für den Zugriff wäre es so etwas wie $mail->delivered

sein Das sind die Beispieldaten zurückgegeben wird -

""" 
[\n 
    {\n 
    "count_purchased": 0,\n 
    "delivered": 1,\n 
    "clicked_unique": 0,\n 
    "shared": 0,\n 
    "mailings": 1,\n 
    "year": 2016,\n 
    "month": 9,\n 
    "opened": 1,\n 
    "opted_out": 0,\n 
    "sent": 1,\n 
    "signed_up": 0,\n 
    },\n 
    {\n 
    "count_purchased": 0,\n 
    "delivered": 56,\n 
    "clicked_unique": 0,\n 
    "shared": 0,\n 
    "mailings": 31,\n 
    "year": 2016,\n 
    "month": 9,\n 
    "opened": 1,\n 
    "opted_out": 0,\n 
    "sent": 102,\n 
    "signed_up": 0,\n 
    }\n 
] 
+0

ist es Json Antwort? –

Antwort

2

die answer of M. I. mit ein wenig Erklärung Verbesserung:

Da Sie eine JSON Zeichenfolge als Antwort bekommen, müssen Sie es konvertieren. Praktischerweise hat PHP dafür eine Funktion, vor allem json_decode. Wenn Ihre Antwort in $mail gespeichert ist, dann müssen wir alles in eine associative array oder ein Objekt der Klasse \stdClass konvertieren.

Ihre Antwort enthält mehrere Objekte, so dass wir einige Arbeit tun müssen, bevor wir es die Art und Weise zugreifen können, Sie wollen es:

// Given the content of mail is your given json string 

// The second parameter allows us to use each entry of $mailData as \stdClass. 
// If you want to use an assiocative array instead, you can put in true for the second parameter. 
$mailData = json_decode($mail, false); // false can also be omitted in this case. 
echo $mailData[0]->sent; // 1 
echo $mailData[1]->sent; // 102 

// Now you are able to do fancy stuff with the data, for example loop over it. 
foreach($mailData as $singleMailData) { 
    // Do whatever you want with each entry. In my example I just print out the data. 
    var_dump($singleMailData); 
} 
+0

Excellent vielen Dank für die Erklärung auch jetzt gut für zukünftige Verwendung verstanden! – SamXronn

1

Sie sind eine JSON als Antwort bekommen. Verwendung:

json_decode($jsonString); // to get an `JSON` object or 
json_decode($jsonString, true); // to get an associative array. 
Verwandte Themen