While this may seem obvious, user-defined array sorting functions ( uksort(), uasort(), usort() ) will *not* be called if the array does not have *at least two values in it*.
The following code:
<?php
function usortTest($a, $b) {
var_dump($a);
var_dump($b);
return -1;
}
$test = array('val1');
usort($test, "usortTest");
$test2 = array('val2', 'val3');
usort($test2, "usortTest");
?>
Will output:
string(4) "val3"
string(4) "val2"
The first array doesn't get sent to the function.
Please, under no circumstance, place any logic that modifies values, or applies non-sorting business logic in these functions as they will not always be executed.
PHP.mk документација
Сортирање низи
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
array.sorting.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
array.sorting.php
Сортирање низи
Референца за `array.sorting.php` со подобрена типографија и навигација.
Сортирање низи
PHP has several functions that deal with sorting arrays, and this document exists to help sort it all out.
PHP има неколку функции кои се занимаваат со сортирање на низи, и овој документ постои за да помогне да се среди сето тоа.
-
Главните разлики се: array Некои сортираат врз основа на
$array['key'] = 'value'; - клучот, додека други по вредноста:
- Дали корелацијата помеѓу клучевите и вредностите се одржува по сортирањето, што може да значи дека клучевите се ресетираат нумерички (0,1,2 ...)
- Редоследот на сортирање: азбучен, растечки (од ниско до високо), опаѓачки (од високо до ниско), природен, случаен или дефиниран од корисникот
- Забелешка: Сите овие функции за сортирање дејствуваат директно на самата променлива на низата, наместо да враќаат нова сортирана низа
| Атрибути на функцијата за сортирање | Име на функција | Сортира по | Одржува асоцијација на клуч | Редослед на сортирање |
|---|---|---|---|---|
| array_multisort() | value | string Поврзани функции int клучеви да, | клучеви не | array_walk() |
| asort() | value | yes | ascending | arsort() |
| arsort() | value | yes | descending | asort() |
| krsort() | key | yes | descending | ksort() |
| ksort() | key | yes | ascending | krsort() |
| natcasesort() | value | yes | прва низа или опции за сортирање | natsort() |
| natsort() | value | yes | natural | natcasesort() |
| rsort() | value | no | descending | sort() |
| shuffle() | value | no | random | array_rand() |
| sort() | value | no | ascending | rsort() |
| uasort() | value | yes | природен, нечувствителен на големината на буквите | uksort() |
| uksort() | key | yes | природен, нечувствителен на големината на буквите | uasort() |
| usort() | value | no | природен, нечувствителен на големината на буквите | uasort() |
Белешки од корисници 2 забелешки
дефиниран од корисникот ¶
12 години пред
oculiz na gmail tocka com ¶
пред 15 години
Another way to do a case case-insensitive sort by key would simply be:
<?php
uksort($array, 'strcasecmp');
?>
Since strcasecmp is already predefined in php it saves you the trouble to actually write the comparison function yourself.