uasort(array unsorted_array, string comparison_function)
Функция uasort (листинг 11.69) сортирует массив с помощью настраиваемой функции сравнения. Индексные значения или ключи переносятся вместе со значениями элементов, аналогично тому, как это делает функция asort. Функция сравнения должна возвращать знаковое целое число. Если она возвращает нулевое значение, два сравниваемых значения являются равными. Если возвращается отрицательное значение, сравниваемые значения расставлены по порядку, если возвращается положительное значение, значит, порядок нарушен.

| Листинг 11.69. Функция uasort_
<?php
// создать тестовые данные function compare($left, $right)
{
return($left - $right);
}
// создать тестовые данные $some_numbers = array(
"red"=>6,
"green"=>4,
"blue"=>8, "yellow"=>2,
"orange"=>7, "cyan"=>1, "purple"=>9, "magenta"=>3,
"black"=>5);
//отсортировать, воспользовавшись настраиваемой функцией сравнения uasort($some_numbers, "compare"); // отобразить отсортированный массив print_r($some_numbers);

 ?> 
uksort(array unsorted_array, string comparison_function)
Функция uksort (листинг 11.70) сортирует массив с помощью настраиваемой функции сравнения. В отличие от функции usort, массив сортируется по значениям индексов, а не элементов. Функция сравнения должна возвращать целое число со знаком. Если она возвращает нулевое значение, сравниваемые значения являются равными. Если возвращается отрицательное значение, значит, сравниваемые значения расставлены по порядку, если возвращается положительное значение - порядок нарушен.

Листинг 11.70. Функция uksort

<?php
// повторить нормальный порядок function compare($left, $right)
{
return($left - $right);
}
// создать тестовые данные srand(time()); for($i=0; $i<10; $i++)
{
$data[rand(1,100)] = rand(1,100);
}
//отсортировать с помощью настраиваемой функции сравнения
uksort($data, "compare");
// отобразить отсортированный массив
print_r($data);
?>

usort(array unsorted_array, string compare_function)
Функция usort (листинг 11.71) сортирует массив с помощью настраиваемой функции сравнения. Она также переиндексирует массив, начиная с нуля. Функция сравнения должна возвращать целое число со знаком. Если она возвращает нулевое значение, сравниваемые значения являются равными. Если возвращается отрицательное значение, значит, сравниваемые значения расставлены по порядку, если возвращается положительное значение - порядок нарушен.

Листинг 11.71. Функция usort

<?php
// повторить нормальный порядок function compare($left, $right)
{
return($left - $right);
}
// создать тестовые данные srand(time()); for($i=0; $i<10; $i++)
{
$data[rand(1,100)] = rand(1,100); 
}
// отсортировать с помощью настраиваемой функции сравнения usort($data, "compare"); //отобразить отсортированный массив print_r($data);
?>