Описание
bool
array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )
Функция array_multisort() может быть использована для
сортировки сразу нескольких массивов или одного многомерного массива
в соответствии с одной или несколькими размерностями. Эта функция
сохраняет соответствие между ключами и соответствующими им значениями.
Входные массивы рассматриваются как столбцы таблицы, которую
нужно отсортировать по строкам - такой подход напоминает
поведение выражения SQL ORDER BY. Первый массив имеет
проиоритет в процессе сортировки.
Структура аргументов этой функции немного необычна,
но удобна. Первым аргументом должен быть массив. Последующие
аргументы могут быть как массивами, так и значениями,
определяющими порядок сортировки, приведенными в
нижеследующем списке.
Значения, определяющие порядок сортировки:
Sorting type flags:
SORT_REGULAR - сравнивать элементы обычным образом
SORT_NUMERIC - сравнивать элементы, как если бы они были числами
SORT_STRING - сравнивать элементы, как если бы они были строками
Недопустимым является указание двух флагов сортировки одинакового типа
после каждого массива. Флаги сортировки, переданные после аргумента
массив, применяются только к этому аргументу -
перед тем, как функция начнет обрабатывать следующий массив, эти флаги
снова принимают значения по умолчаниюt SORT_ASC и SORT_REGULAR.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Пример 1. Сортировка нескольких массивов
$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1, 3, "2", 1);
array_multisort ($ar1, $ar2);
|
|
В вышеприведенном примере, после того, как будет осуществлена
сортировка, первый массив будет содержать 10, "a", 100, 100.
Второй - 1, 1, "2", 3. Элементы второго массива, соответствующие
идентичным элементам первого (100 и 100), также будут отсортированы.
Пример 2. Сортировка многомерного массива
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
|
|
В вышеприведенном примере, после сортировки, первый массив
будет содержать 10, 100, 100, "a" (его элементы были отсортированы в
возрастающем порядке так, как если бы они были строками), а
второй массив будет содержать 1, 3, "2", 1 (элементы отсортированы
как числа, в порядке убывания).