|
array_multisort(PHP 4, PHP 5) array_multisort — Сортирует несколько массивов или многомерные массивы Описание
bool array_multisort
( array &$arr
[, mixed $arg = SORT_ASC
[, mixed $arg = SORT_REGULAR
[, mixed $...
]]] )
Функция array_multisort() может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями. Ассоциативные (string) ключи будут сохранены, но числовые ключи будут переиндексированы. Список параметров
Возвращаемые значенияВозвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Примеры
Пример #1 Сортировка нескольких массивов
<?php В вышеприведенном примере, после того, как будет осуществлена сортировка, первый массив будет содержать 0, 10, 100, 100. Второй - 4, 1, 2, 3. Элементы второго массива, соответствующие идентичным элементам первого (100 и 100), также будут отсортированы. array(4) { [0]=> int(0) [1]=> int(10) [2]=> int(100) [3]=> int(100) } array(4) { [0]=> int(4) [1]=> int(1) [2]=> int(2) [3]=> int(3) }
Пример #2 Сортировка многомерного массива
<?php В вышеприведенном примере, после сортировки, первый массив будет содержать "10", 100, 100, 11, "a" (его элементы были отсортированы в возрастающем порядке), а второй массив будет содержать 1, 3, "2", 2, 1 (элементы отсортированы как числа, в порядке убывания). array(2) { [0]=> array(5) { [0]=> string(2) "10" [1]=> int(100) [2]=> int(100) [3]=> int(11) [4]=> string(1) "a" } [1]=> array(5) { [0]=> int(1) [1]=> int(3) [2]=> string(1) "2" [3]=> int(2) [4]=> int(1) } }
Пример #3 Сортировка результатов из базы данных В этом примере, каждый элемент массива data представляет собой ряд таблицы. Такой тип данных типичен для записей базы данных. Примерные данные: # том | издание volume | edition -------+-------- 67 | 2 86 | 1 85 | 6 98 | 2 86 | 6 67 | 7 Данные представлены в виде массива с именем data. Обычно их можно получить, к пример, с помощью цикла из функции mysql_fetch_assoc().
<?php В нашем примере мы будем сортировать по volume в убывающем порядке, а по edition - в возрастающем. У нас есть массив строк, но array_multisort() необходим массив столбцов, поэтому сначала мы используем следующий код для получения столбцов, а потом выполним сортировку.
<?php Теперь данные отсортированы и будут выглядеть вот так: volume | edition -------+-------- 98 | 2 86 | 1 86 | 6 85 | 6 67 | 2 67 | 7
Пример #4 Сортировка без учета регистра Обе константы SORT_STRING и SORT_REGULAR учитывают регистр при сортировке, строки, начинающиеся с заглавной буквы будут выставлены раньше строк, начинающихся со строчной буквы. Для выполнения безрегистрового поиска нужно заставить выполнить порядок сортировки по копии оригинального массива, переведенного в нижний регистр.
<?php Результат выполнения данного примера: Array ( [0] => Alpha [1] => atomic [2] => bank [3] => Beta ) Смотрите также
|
|