Функция array_multisort() в PHP

Пример

Возвращает массив, отсортированный по возрастанию:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);;
print_r($a);
?>

Запуск примера

Определение и использование

Функция array_multisort() возвращает отсортированный массив. Вы можете ввести один или несколько массивов. Функция сначала сортирует первый массив, затем другие массивы, если два или более значений одинаковы, она сортирует следующий массив.

Комментарий:Строковые имена ключей будут сохранены, но числовые имена ключей будут перерегистрированы, начиная с 0 и увеличиваясь на 1.

Комментарий:Вы можете установить параметры порядка и типа сортировки после каждого массива. Если они не установлены, каждый массив будет использовать значение по умолчанию.

Синтаксис

array_multisort(array1,порядок сортировки,тип сортировки,array2,array3...)
Параметры Описание
array1 Обязателен. Определение массива.
порядок сортировки

Опционально. Определение порядка сортировки. Возможные значения:

  • SORT_ASC - По умолчанию. Сортировка по возрастанию (A-Z).
  • SORT_DESC - Сортировка по убыванию (Z-A).
тип сортировки

Опционально. Определение типа сортировки. Возможные значения:

  • SORT_REGULAR - По умолчанию. Сортировка элементов по стандартному порядку (Standard ASCII, без изменения типа).
  • SORT_NUMERIC - Каждое значение обрабатывается как число.
  • SORT_STRING - Каждое значение обрабатывается как строка.
  • SORT_LOCALE_STRING - Каждое значение обрабатывается как строка, на основе текущей региональной настройки (может быть изменена с помощью setlocale()).
  • SORT_NATURAL - Каждое значение обрабатывается как строка, используя естественную сортировку, аналогичную natsort().
  • SORT_FLAG_CASE - Может быть использован (или ИЛИ) SORT_STRING или SORT_NATURAL для сортировки строк, без учета регистра.
array2 Опционально. Определение массива.
array3 Опционально. Определение массива.

Описание

Функция array_multisort() используется для сортировки нескольких массивов或多имассивов.

Массив в параметрах рассматривается как столбец таблицы и сортируется по строкам - это类似 функции ORDER BY в SQL. Первый массив является основным массивом для сортировки. Если строки (значения) в массиве сравниваются как равные, то сортировка продолжается по следующему вводимому массиву с соответствующими значениями, и так далее.

Первый параметр является массивом, следующие параметры могут быть массивом или одним из следующих признаков сортировки (признаки сортировки используются для изменения стандартного порядка排列):

  • SORT_ASC - По умолчанию, сортировка по возрастанию. (A-Z)
  • SORT_DESC - Сортировка по убыванию. (Z-A)

Затем можно определить тип сортировки:

  • SORT_REGULAR - По умолчанию. Сортировка элементов по обычному порядку.
  • SORT_NUMERIC - Сортировка элементов по числовому порядку.
  • SORT_STRING - сортировка каждого элемента по алфавитному порядку.

Технические детали

Возвратное значение: Возвращает TRUE при успешном выполнении, FALSE при неудаче.
Версия PHP: 4+
Журнал обновлений:

Типы сортировки SORT_NATURAL и SORT_FLAG_CASE были добавлены в PHP 5.4.

Тип сортировки SORT_LOCALE_STRING был добавлен в PHP 5.3.

Более примеров

Пример 1

Возвращает массив, отсортированный по возрастанию:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Запуск примера

Пример 2

Как сортировать при равных значениях:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Запуск примера

Пример 3

Использование параметров сортировки:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);;
print_r($a1);
print_r($a2);
?>

Запуск примера

Пример 4

Слияние двух массивов и сортировка по числовому порядку в порядке убывания:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);;
print_r($num);
?>

Запуск примера