array_multisort Сортирует несколько массивов или многомерные массивы &reftitle.description; boolarray_multisort arrayarr mixedargSORT_ASC mixedargSORT_REGULAR mixed... Функция array_multisort может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями. Ассоциативные (string) ключи будут сохранены, но числовые ключи будут переиндексированы. &reftitle.parameters; arr Сортируемый массив (array). arg Необязательные другие массивы (array), или опции сортировки для предыдущего аргумента (array): SORT_ASC, SORT_DESC, SORT_REGULAR, SORT_NUMERIC, SORT_STRING. ... Дополнительные параметры (arg). &reftitle.returnvalues; &return.success; &reftitle.examples; Сортировка нескольких массивов ]]> В вышеприведенном примере, после того, как будет осуществлена сортировка, первый массив будет содержать 0, 10, 100, 100. Второй - 4, 1, 2, 3. Элементы второго массива, соответствующие идентичным элементам первого (100 и 100), также будут отсортированы. 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) } ]]> Сортировка многомерного массива ]]> В вышеприведенном примере, после сортировки, первый массив будет содержать "10", 100, 100, 11, "a" (его элементы были отсортированы в возрастающем порядке), а второй массив будет содержать 1, 3, "2", 2, 1 (элементы отсортированы как числа, в порядке убывания). 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) } } ]]> Сортировка результатов из базы данных В этом примере, каждый элемент массива data представляет собой ряд таблицы. Такой тип данных типичен для записей базы данных. Примерные данные: Данные представлены в виде массива с именем data. Обычно их можно получить, к пример, с помощью цикла из функции mysql_fetch_assoc. 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); ?> ]]> В нашем примере мы будем сортировать по volume в убывающем порядке, а по edition - в возрастающем. У нас есть массив строк, но array_multisort необходим массив столбцов, поэтому сначала мы используем следующий код для получения столбцов, а потом выполним сортировку. $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // Сортируем данные по volume по убыванию и по edition по возрастанию // Добавляем $data в качестве последнего параметра, для сортировки по общему ключу array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); ?> ]]> Теперь данные отсортированы и будут выглядеть вот так: Сортировка без учета регистра Обе константы SORT_STRING и SORT_REGULAR учитывают регистр при сортировке, строки, начинающиеся с заглавной буквы будут выставлены раньше строк, начинающихся со строчной буквы. Для выполнения безрегистрового поиска нужно заставить выполнить порядок сортировки по копии оригинального массива, переведенного в нижний регистр. ]]> &example.outputs; Alpha [1] => atomic [2] => bank [3] => Beta ) ]]> &reftitle.seealso; usort &seealso.array.sorting;