2016-11-23 4 views
0

Ich habe einen Webservice, der ein sehr großes JSON-Objekt zurückgibt. Ich dekodiere dies zu einem Array zum Parsen.Erhalten alle Instanzen eines bestimmten Feldes von JSON in PHP

Ich versuche jedoch, alle Array-Mitglieder aus dem JSON-Array zu extrahieren, wo am Anfang des einzelnen Array-Objekts [ID] => 21 ist.

Eine nette einfache Aufgabe mit LINQ, aber keine Idee, wie man das in PHP macht. Es muss einen Weg geben, durchzufiltern und zu extrahieren.

+2

Code mit vorhandenem Versuch hinzufügen: D – georoot

+0

Und ein nicht kritisches Beispiel der JSON zurückgegeben – Bobot

Antwort

0

ich so etwas wie array_filter für diese

function find_id($var) 
{ 
    // returns whether the is is 21 
    return($var['id'] === 21); 
} 


$result = array_filter($jsondata, "find_id")); 

array_filterIteriert über jeden Wert in dem Array verwenden würde sie an die Callback-Funktion übergeben. Wenn die Callback-Funktion wahr zurückgibt, wird der aktuelle Wert aus dem Array in das Ergebnis-Array zurückgegeben. Array-Schlüssel werden beibehalten.

+0

Das ist perfekt. Gibt es eine Möglichkeit, den Filterwert anzugeben, anstatt ihn fest zu codieren? Ich hätte lieber keinen $ GLOBAL [...], wenn ich damit durchkommen könnte. – Nodoid

+0

So etwas wie das: http://php.net/manual/en/function.array-filter.php#93965 ?? – Sitethief

+0

Oder verwenden Sie 'array_walk', das einen Parameter erhalten kann – Sitethief

Verwandte Themen