2017-10-13 1 views
1

Ich habe dieses Array (decodierte von JSON- Ausgang mit print_r):array_unique Ausgänge null, während Array Sortier

stdClass Object 
(
    [data] => Array 
     (
      [0] => stdClass Object 
       (
        [item] => te 
        [date] => 13.10 
       ) 
      [1] => stdClass Object 
       (
        [item] => te 
        [date] => 13.10 
       ) 
      [2] => stdClass Object 
       (
        [item] => tr 
        [date] => 13.10 
       ) 
     ) 
) 

aber jetzt muss ich alle Duplikate entfernen. Wenn ich versuche $result = array_unique($array, SORT_REGULAR); $result ist null.

Kann jemand meinen Fehler erkennen?

+1

Dies ist ein Standardobjekt, kein Array, wandeln Sie es zuerst in das Array um –

Antwort

3

Dies ist ein stdClass Objekt, kein Array. Wenn Sie mit der Funktion json_decode dekodieren, müssen Sie den Parameter „true“ übergeben ein Array haben:

$array = json_decode($json, true); 

Edit: Da die Menschen in den Kommentaren bemerkt, besteht die eigentliche Array in $array['data'], so dass die array_unique muss auf $array['data'] statt $array angewendet werden.

+3

Vielleicht fügen Sie auch hinzu, dass danach das 'array_unique' auf' $ array ["data"] 'anstelle von' $ array' angewendet werden muss. – trincot

+0

@trincot Ja, richtig. Das eigentliche Array existiert in $ array ['data']. Bitte aktualisieren Sie die Antwort –

+0

Also, mit dem wahren Parameter kann ich das sortierte Array sehen. Aber wie kann ich es mit dem Datenarray zurück zum ursprünglichen JSON bekommen? – Francis