Сортировка многомерного массива по дате на PHP
Довелось мне поработать с CMS Joomla!, а именно – немного доводить до ума модуль, который выдавал, можно сказать, в разном порядке определенную информацию.
Моя же задача была упорядочить всю эту информацию по дате, от большего к меньшему.
Чтобы вы представляли всю картину, исходный массив данных выглядел примерно следующим образом:
$array = array(
array("date" => "04.02.2015", "id" => "1"),
array("date" => "13.03.2002", "id" => "2"),
array("date" => "17.03.2012", "id" => "3"),
array("date" => "20.03.2015", "id" => "4"),
);
Соответственно, мне нужно было этот массив пересобрать и сделать новый, в порядке убывания дат.
Реализация следующая:
function sort_date($a_new, $b_new) {
$a_new = strtotime($a_new["date"]);
$b_new = strtotime($b_new["date"]);
return $b_new - $a_new;
}
$array = array(
array("date" => "04.02.2015", "id" => "1"),
array("date" => "13.03.2002", "id" => "2"),
array("date" => "17.03.2012", "id" => "3"),
array("date" => "20.03.2015", "id" => "4"),
);
usort($array, "sort_date");
print_r("<pre>");
print_r($array);
В таком случае мы получаем новый массив в уже отсортированном виде.
Если вы хотите сделать наоборот, от меньшего к большему, то поменяйте местами переменные «$a_new» и «$b_new».
Удачных вам разработок!