Wie man ein JSON array mit PHP
Zuallererst bin ich ein absoluter Neuling auf diesem habe ich nach Lösungen gesucht, aber keiner scheint den trick tun.
So, ich bin versucht zu Sortieren, dieses JSON-array nach Datum, aber ich weiß wirklich nicht, sollte ich gegen dieses Problem, irgendwelche Tipps in die richtige Richtung sind sehr willkommen!
["info":[
{"id":1, "title":"original title", "name":"john doe", "date":"2010-05-15"},
{"id":2, "title":"another title", "name":"foo bar", "date":"2009-04-11"},
...
So, ich bin immer die Daten, wie diese
$data=file_get_contents('jsondata...');
$d=json_decode($data,true);
Ich würde gerne die Sortierung der Daten nach Datum, irgendwelche Ideen, wie ich diesen Ansatz? Ist es auch möglich, den return-Wert des Jahres? Also die Ausgabe 2009 statt 2009-04-11?
Vielen Dank im Voraus
Verwenden
Wie tief haben Sie versucht, in diese zu Graben? Es scheint nicht, wie Sie habe wirklich versucht zu tun, was Sie bitten uns zu helfen, Sie mit.
ich habe das Spiel mit ihm für die letzten 2 Tage, ich habe gelesen und versucht, viele der Lösungen, die ich gefunden habe auf andere Befragung der gleichen Frage, aber ich habe wahrscheinlich schon die Anwendung es falsch, da ich noch sehr neu in diesem. Sorry für die Fragen helfen.
strtotime
zu drehen, Sie in eine Reihe und dann Sortieren?Wie tief haben Sie versucht, in diese zu Graben? Es scheint nicht, wie Sie habe wirklich versucht zu tun, was Sie bitten uns zu helfen, Sie mit.
ich habe das Spiel mit ihm für die letzten 2 Tage, ich habe gelesen und versucht, viele der Lösungen, die ich gefunden habe auf andere Befragung der gleichen Frage, aber ich habe wahrscheinlich schon die Anwendung es falsch, da ich noch sehr neu in diesem. Sorry für die Fragen helfen.
InformationsquelleAutor xtoffer | 2012-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
usort
und eine benutzerdefinierte Vergleichsfunktion:<=>
arbeitet auf strings, weil hier ein string-Vergleich ist auch ein Termin-Vergleich, wenn Sie Ihre Daten formatiert sind, als YYYY-MM-DD.Dann zeigen den Wert des Jahres für einen Eintrag, können Sie analysieren Sie das Datum in eine
DateTime
und formatieren Sie es:Hier ist eine demo.
Sie sollten akzeptieren, eine Antwort als richtig, so dass Sie nicht nur schätzen Ihre Bemühungen, Euch zu helfen, aber Sie können auch helfen, jemanden wie mir, der hat das gleiche Problem wie du und ich versuchen, herauszufinden, welche Antwort hier richtig ist! Vielen Dank im Voraus!
Danke für die Antwort– schade, dass es nicht als gelöst markiert..
Hinweis: ab PHP 5.2.2, DateTime-Objekte können verglichen werden mit Vergleichsoperatoren, so sollten Sie nur in der Lage sein
return ($dA > $dB)
nicht erwarten, dass ein boolean zurückgeben, aber du hast Recht, es macht nicht viel Sinn zu vergleichen, nur das Jahr, auch wenn Sie nur show des Jahres.
InformationsquelleAutor Ry-
Müssen Sie konvertieren Sie das Datum in ein sortierfähiges format zuerst. Ich denke, dass
strtotime()
macht den job. Danach können Sie die Ausgabe auch immer mitstrftime()
.InformationsquelleAutor Frank van Wijk
Verwenden uasort Sortieren Sie das array mit Benutzer-definierter Funktion und strtotime zu analysieren, das Datum zu timestamp.
Ausgabe
uasort
da die Schlüssel numerisch sind, und bestellen Sie die Aufrechterhaltung der numerischen Tasten kann unglaublich verwirrend sein (in Ihrer Ausgabe0
kommt nach1
).Ja, es tut und tut so, weil ich es wollte. Ich will nicht zu ändern Sie das array dann nicht mehr, es ist notwendig für keinen Grund. Was ist, wenn der Schlüssel ist tatsächlich wichtig?
Ich Wette, Sie $50, dass die OP nicht wollen, den Punkt 1 zu kommen, bevor Punkt 0 in das array, vor allem, da es nicht assoziativ, um mit zu beginnen 😉
Sie können die Wette von mir was Ihr wollt, ich bin nicht das ändern von Indizes, nur weil ich denke, dass ich kann.
Seufz ich glaube nicht, dass Sie verstehen, wie lächerlich, dass ein array in dieser Reihenfolge mit diesen Schlüsseln ist. Aber was auch immer.
InformationsquelleAutor cypher
Etwas wie das folgende sollte Ihnen den Einstieg:
InformationsquelleAutor Andreas Wong