Я хотел бы отсортировать данные, полученные от вызова API, по нескольким критериям, а затем отфильтровать их для отображения данных в 2 разных таблицах.
Это код, который у меня сейчас есть для сортировки данных., на 1) machine-> id, 2) date, 3) ordering.
function cmp($a, $b)
{
if (strtotime($a->date) == strtotime($b->date)){
return $a->ordering - $b->ordering;
}
if ($a->machine->id == $b->machine->id) {
return strtotime($a->date) - strtotime($b->date);
}
return strcmp($a->machine->id, $b->machine->id);
}
usort($obj, "cmp");
После этого я фильтрую только данные с определенной машиной-> id, чтобы показать эти данные в таблице:
$machine1 = array_filter($obj, function($object){
return ($object->machine->id == 1141);
});
и
$machine2 = array_filter($obj, function($object){
return ($object->machine->id == 1259);
});
теперь данные в таблице для machine1 выглядят так, сортировка по датам работает некорректно:
2018-11-26T23:00:00Z - ordering: 1
2018-11-26T23:00:00Z - ordering: 3
2018-11-27T23:00:00Z - ordering: 2
2018-11-27T23:00:00Z - ordering: 3
2018-11-27T23:00:00Z - ordering: 4
2018-11-27T23:00:00Z - ordering: 5
2018-11-25T23:00:00Z - ordering: 1
2018-11-25T23:00:00Z - ordering: 2
2018-11-26T23:00:00Z - ordering: 2
2018-11-27T23:00:00Z - ordering: 1
2018-11-25T23:00:00Z - ordering: 3
2018-11-25T23:00:00Z - ordering: 4
2018-11-25T23:00:00Z - ordering: 5
2018-11-25T23:00:00Z - ordering: 6
2018-11-25T23:00:00Z - ordering: 7
2018-11-25T23:00:00Z - ordering: 8
2018-11-25T23:00:00Z - ordering: 9
2018-11-25T23:00:00Z - ordering: 10
2018-11-25T23:00:00Z - ordering: 11
2018-11-26T23:00:00Z - ordering: 4
2018-11-26T23:00:00Z - ordering: 5
2018-11-26T23:00:00Z - ordering: 6
2018-11-26T23:00:00Z - ordering: 7
2018-11-26T23:00:00Z - ordering: 8
2018-11-26T23:00:00Z - ordering: 9
2018-11-26T23:00:00Z - ordering: 10
2018-11-26T23:00:00Z - ordering: 11
2018-11-26T23:00:00Z - ordering: 12
2018-11-26T23:00:00Z - ordering: 13
2018-11-26T23:00:00Z - ordering: 14
2018-11-26T23:00:00Z - ordering: 15
2018-11-26T23:00:00Z - ordering: 16
Что я делаюнеправильно?