Я пытаюсь упорядочить такой массив в моей opencart 3.0.2:
array(4) {
[0]=> array(3)
{
["name"]=> string(5) "Name1"
["download_id"]=> int(1)
["event_date"]=> string(10) "05/05/2018"
}
[1]=> array(3)
{
["name"]=> string(5) "Name2"
["download_id"]=> int(2)
["event_date"]=> string(10) "05/06/2018"
}
[2]=> array(3)
{
["name"]=> string(5) "Name3"
["download_id"]=> int(3)
["event_date"]=> string(10) "01/05/2018"
}
[3]=> array(3)
{
["name"]=> string(5) "Name4"
["download_id"]=> int(4)
["event_date"]=> string(10) "02/05/2018"
}
}
Я использую USORT, чтобы упорядочить этот массив следующим образом:
usort($download_teste['teste'], "sortByDate")
Моя функция SortByDate это:
function sortByDate($a, $b) {
$first = $this->formatDateDownloadForTest($a['event_date']);
$second = $this->formatDateDownloadForTest($b['event_date']);
if ($first == $second) {
return 0;
}
return ($first < $second) ? -1 : 1;
}
Также я использую эту функцию formatDateDownloadForTest, чтобы получить дату и преобразовать исходную дату, например, из d / m / Y в Ymd в строку, поэтому дата 05/05/2018 станет 20180505, чтобы сравнивать их и возвращать правильно , Эту функцию я тестировал и все нормально!
function formatDateDownloadForTest($date){
$insertedDate = explode("/", $date);
$insertedDate = $insertedDate[2].$insertedDate[1].$insertedDate[0];
return $insertedDate;
}
По какой-то причине это не работает, я хочу знать, что я делаю здесь неправильно, потому что это никак не меняет порядок массива.
Спасибо за ваше время!
Бика