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
)
Смотрите также
|
||