Справочник функций PHP /
Функции по алфавиту
A B C D E F G H I J K L M N O P Q R S T U V W

uasort

bool uasort ( array &$array , callback $cmp_function ) uasort сортирует массив $array, используя пользовательскую функцию с названием $cmp_function, сохраняя при этом связку ключ-значение. Если для сортировки массива требуются какие-то специальные условия, то эта функция — то, что вам нужно! В пользовательскую функцию передаются два аргумента — значения элементов, которые необходимо сравнить. Вернуть пользовательская функция должна ноль, число меньше нуля или число больше нуля, если первый аргумент равен, меньше, либо больше второго соответственно. uasort возвращает true в случае удачи, иначе — false. Пример использования: <?php
/*
Надо отсортировать массив по возрастанию второго элемента в каждом из значений
*/


$arr=array(
'a'=>array(6, 1),
'b'=>array(6, 3),
'c'=>array(5, 99),
'd'=>array(1, 4),
'e'=>array(9, 2),
'f'=>array(1, 4)
);

function
usersort($a, $b)
{
if (
$a[1]==$b[1]) return 0;
return (
$a[1]<$b[1]) ? -1 : 1;
}

uasort($arr, 'usersort');

print_r($arr);
/*
Array
(
[a] => Array
(
[0] => 6
[1] => 1
)

[e] => Array
(
[0] => 9
[1] => 2
)

[b] => Array
(
[0] => 6
[1] => 3
)

[f] => Array
(
[0] => 1
[1] => 4
)

[d] => Array
(
[0] => 1
[1] => 4
)

[c] => Array
(
[0] => 5
[1] => 99
)

)


Всё отсортировано, как мы и хотели!
*/
?>