Сортировка двумерного массива на PHP
Не так давно передо мной встала задача сортировки двумерного массива на PHP, причём внутренний массив был ассоциативным. Я было хотел сортировать, как уже привык, методом пузырька, но потом решил поискать в Интернете более оригинальный способ и нашёл. И сейчас я с Вами поделюсь этим методом сортировки двумерного массива на PHP.
Давайте с Вами разберёмся в коде, в котором есть массив с несколькими пользователями, и нам необходимо отсортировать их по дате регистрации.
<?php
/* Двумерный массив с пользователями (например, из БД) */
$array = array();
$array[5] = array("email" => "[email protected]", "date_reg" => 1272895531);
$array[10] = array("email" => "[email protected]", "date_reg" => 1274429353);
$array[3] = array("email" => "[email protected]", "date_reg" => 1274277050);
usort($array, "compare"); // Вызываем пользовательскую сортировку
/* Функция для нашей сортировки */
function compare ($v1, $v2) {
/* Сравниваем значение по ключу date_reg */
if ($v1["date_reg"] == $v2["date_reg"]) return 0;
return ($v1["date_reg"] < $v2["date_reg"])? -1: 1;
}
print_r($array); // Выводим отсортированный массив
?>
В основе лежит usort() - функция пользовательской сортировки. А сама сортировка происходит по правилам, описанным в функции compare().
Вот таким простым способом можно отсортировать двумерный массив на PHP.
-
- Михаил Русаков
Комментарии (2):
Thank's!
Ответить
Большое спасибо! Отличное решение
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.