Сортировка массивов в PHP
Рассмотрим функции применямые для сортировки массивов в PHP.С описанием и примерами применения.
bool sort(array &A[,int sort_flags])
+
-
Сортирует массив, распологая элементы в порядке возрастания. При этом изменяет значения ключей на новые.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Параметр sort_flags был добавлен начиная с PHP 4
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Параметр sort_flags был добавлен начиная с PHP 4
- SORT_REGULAR - сравнивать элементы нормально (не изменять типы)
- SORT_NUMERIC - сравнивать элементы как числа
- SORT_STRING - сравнивать элементы как строки
- SORT_LOCALE_STRING - сравнивать элементы как строки, с учетом локали.(Добавлено в PHP 5.0.2)
Код | Результат | ||
---|---|---|---|
|
|
bool asort(array &A[,int sort_flags])
+
-
Сортирует массив в прямом порядке сохраняя при этом значение пары ключ => значение.
Используется для сортировки ассоциативных массивов.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Используется для сортировки ассоциативных массивов.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$asort_m[a] = A
$asort_m[b] = B $asort_m[c] = C " |
+
-
Сортирует массив в обратном порядке.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$rsort_m[0] = 15
$rsort_m[1] = 13 $rsort_m[2] = 11 $rsort_m[3] = 7 $rsort_m[4] = 4 $rsort_m[5] = 3 $rsort_m[6] = 2 $rsort_m[7] = 1 |
+
-
Сортирует массив в обратном порядке, сохраняя при этом соотношения ключ => значение без изменения
Используется для сортировки ассоциативных массивов.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Используется для сортировки ассоциативных массивов.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$arsort_m[c] = C
$arsort_m[b] = B $arsort_m[a] = A |
+
-
Сортирует массив по ключам, сохраняя соотношение ключ => значение.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$ksort_m[a] = A
$ksort_m[b] = B $ksort_m[c] = C |
+
-
Сортирует массив по ключам в обратном порядке, сохраняя соотношение ключ => значение.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$krsort_m[c] = C
$krsort_m[b] = B $krsort_m[a] = A |
+
-
Сортирует массив с использованием алгоритма "natural order", т.е. в порядке привычном для человека.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$natsort_m[8] = A1
$natsort_m[4] = A2 $natsort_m[0] = A4 $natsort_m[9] = A10 $natsort_m[3] = B1 $natsort_m[7] = B5 $natsort_m[5] = a2 $natsort_m[2] = a3 $natsort_m[1] = b2 $natsort_m[6] = b3 |
+
-
Сортирует массив с использованием алгоритма "natural order", т.е. в порядке буквенных и цифровых значений в привычных для человека.
Регистронезависимая реализация функции natsort()
Код | Результат |
---|---|
|
$natcsort_m[7] = A1
$natcsort_m[4] = a2 $natcsort_m[2] = a3 $natcsort_m[0] = A4 $natcsort_m[3] = B1 $natcsort_m[1] = b2 $natcsort_m[5] = b3 $natcsort_m[6] = B5 |
+
-
Сортирует несколько массивов или один многомерный массив. При этом сохраняя соответствие ключи => значениями.
Первый аргумент должен быть массивом, следующие аргументы могут быть как массивами так и значениями определяющими тип и порядок сортировки
Порядок сортировки:
- SORT_ASC - сортировать в возрастающем порядке
- SORT_DESC - сортировать в убывающем порядке
- SORT_REGULAR - сравнивать элементы обычным образом
- SORT_NUMERIC - сравнивать элементы, как если бы они были числами
- SORT_STRING - сравнивать элементы, как если бы они были строками
Код | Результат | ||
---|---|---|---|
|
|
+
-
Сортирует массив A по значениям используя для сравнения элементов пользовательскую функцию comparator
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Функция должна иметь вид:
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Функция должна иметь вид:
function comparator($a, $b) {
if ($a меньше $b)
return отрицательное число (-1);
if ($a больше $b)
return положительное число (1);
return 0; // при $a равном $b
}
Код | Результат |
---|---|
|
$usort_m[0] = array(1, 2)
$usort_m[1] = array(3, 1) $usort_m[2] = array(7, 8) $usort_m[3] = array(2, 20) |
+
-
Сортирует массив в прямом порядке, используя для сравнения элементов пользовательскую функцию comparator, при этом сохраняет значение пары ключ => значение.
Ипользуется для сортировки ассоциативных массивов.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Ипользуется для сортировки ассоциативных массивов.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$uasort_m[d] = D
$uasort_m[c] = C $uasort_m[b] = B $uasort_m[a] = A |
+
-
Сортирует массив по ключам, используя для сравнения элементов пользовательскую функцию comparator
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Код | Результат |
---|---|
|
$uksort_m[a] = 30
$uksort_m[b] = 20 $uksort_m[c] = 40 $uksort_m[d] = 10 |