Hallo,
Brauche noch einmal Hilfe.
Hier mal mein Beispiel.
Mit dem auskommentierten teil sortiert es mein array absteigend der Zeit nach. Funktioniert perfekt.
Jetzt dachte ich mir, hänge ich dies nochmal dran, nur mit einer Sortierung nach dem status, klappt auch bei 2 bis 3 Einträge sind mehr vorhanden kommt eine mir unverständliche Sortierung zu stande.
Wie bekomme ich es hin alles nach der Zeit zu sortieren und zugleich nach dem Status. Als erstes alles mit dem Status 0 und danach alle mit dem Status 1,dies aber chronologisch der Zeit nach.
Viele Grüße
Brauche noch einmal Hilfe.
PHP:
<?php
$json = '{"art":{"88721":{"timestamp":1522222377,"Status":{"Gesamt":1,"Bestand":0}},"92259":{"timestamp":1522251889,"Status":{"Gesamt":0,"Bestand":0}},"92260":{"timestamp":1522252886,"Status":{"Gesamt":0,"Bestand":0}},"92261":{"timestamp":1522251948,"Status":{"Gesamt":1,"Bestand":1}},"92262":{"timestamp":1522251903,"Status":{"Gesamt":0,"Bestand":0}},"122698":{"timestamp":1522236713,"Status":{"Gesamt":0,"Bestand":0}},"138067":{"timestamp":1522158878,"Status":{"Gesamt":0,"Bestand":0}},"149859":{"timestamp":1522247911,"Status":{"Gesamt":0,"Bestand":0}},"149864":{"timestamp":1522170776,"Status":{"Gesamt":0,"Bestand":0}},"149881":{"timestamp":1522170889,"Status":{"Gesamt":0,"Bestand":0}},"152906":{"timestamp":1522162105,"Status":{"Gesamt":1,"Bestand":0}},"152907":{"timestamp":1522162063,"Status":{"Gesamt":1,"Bestand":1}},"154545":{"timestamp":1522247894,"Status":{"Gesamt":0,"Bestand":0}},"157295":{"timestamp":1522247933,"Status":{"Gesamt":0,"Bestand":0}},"160167":{"timestamp":1522247882,"Status":{"Gesamt":0,"Bestand":0}},"160168":{"timestamp":1522247874,"Status":{"Gesamt":0,"Bestand":0}},"160209":{"timestamp":1522224064,"Status":{"Gesamt":1,"Bestand":0}},"160211":{"timestamp":1522252851,"Status":{"Gesamt":0,"Bestand":0}},"160212":{"timestamp":1522252862,"Status":{"Gesamt":0,"Bestand":0}},"160886":{"timestamp":1522247919,"Status":{"Gesamt":0,"Bestand":0}},"161271":{"timestamp":1522223361,"Status":{"Gesamt":1,"Bestand":0}}}}';
$test = json_decode($json,true);
uasort($test['art'],function($a, $b) {
if ($a['timestamp'] == $b['timestamp']) return 0;
if ($a['timestamp'] < $b['timestamp']) return 1;
return -1;
});
/*
uasort($test['art'],function($a, $b) {
if ($a['Status']['Gesamt'] == $b['Status']['Gesamt']) return 0;
if ($a['Status']['Gesamt'] > $b['Status']['Gesamt']) return 1;
return -1;
});
*/
var_dump($test);
Hier mal mein Beispiel.
Mit dem auskommentierten teil sortiert es mein array absteigend der Zeit nach. Funktioniert perfekt.
Jetzt dachte ich mir, hänge ich dies nochmal dran, nur mit einer Sortierung nach dem status, klappt auch bei 2 bis 3 Einträge sind mehr vorhanden kommt eine mir unverständliche Sortierung zu stande.
Wie bekomme ich es hin alles nach der Zeit zu sortieren und zugleich nach dem Status. Als erstes alles mit dem Status 0 und danach alle mit dem Status 1,dies aber chronologisch der Zeit nach.
Viele Grüße