Я пытаюсь заказать такой массив в моем 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;
}
По какой-то причине это не работает, я хочу знать, что я здесь делаю неправильно, потому что это никак не меняет порядок массива.
Спасибо за ваше время! Бика