Не так давно передо мной встала задача сортировки двумерного массива на PHP , причём внутренний массив был ассоциативным. Я было хотел сортировать, как уже привык, методом пузырька, но потом решил поискать в Интернете более оригинальный способ и нашёл. И сейчас я с Вами поделюсь этим методом сортировки двумерного ма...

Сортировка двумерного массива на PHP

Не так давно передо мной встала задача сортировки двумерного массива на PHP, причём внутренний массив был ассоциативным. Я было хотел сортировать, как уже привык, методом пузырька, но потом решил поискать в Интернете более оригинальный способ и нашёл. И сейчас я с Вами поделюсь этим методом сортировки двумерного массива на PHP.

Давайте с Вами разберёмся в коде, в котором есть массив с несколькими пользователями, и нам необходимо отсортировать их по дате регистрации.

<?php
  /* Двумерный массив с пользователями (например, из БД) */
  $array = array();
  $array[5] = array("email" => "abc1@mail.ru", "date_reg" => 1272895531);
  $array[10] = array("email" => "abc2@mail.ru", "date_reg" => 1274429353);
  $array[3] = array("email" => "abc3@mail.ru", "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.