![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
"simple"
|
Люди!!!
Кто знаеть, расскажите поподробнее о функции usort()... и если мона с примерами... заранее спсбо... ![]() |
|
|||||
|
сортирует массив используя юзерскую функцию для сравнения элементов.
Например сортировка по четым/нечетным значениям массива $arr = array(100,101,102,103,104,105,106);
function MyCompare($a,$b){
$r1 = $a % 2; //вычисляем остатки от деления на 2
$r2 = $b % 2;
if ($r1>$r2) return 1; // $a нечетная, $b четная
elseif ($r1<$r2) return -1; // $a четная, $b нечетная
else return 0; //они равны по четности
};
usort($arr,'MyCompare');
// после этого массив будет:
$arr == array(101,103,105,100,102,104,106);
__________________
Не ошибается то, что не работает. (с) Windows Последний раз редактировалось DeepDiver; 01.04.2002 в 09:41. |
|
|||||
|
"simple"
|
Спасибо за ответ - тока тут возникает такой вопросы:
1) зачем мы даём ф-ции параметры, если потом их не указываем при вызове ф-ции, 2) и что нам даёт возвращение функцией 1, -1 или 0? ![]() |
|
|||||
|
1) Параметры функции, которая передается usort() строго фиксированы - это два параметра, в которых будует передаваться два элемента массива для сравнения.
2) В результате сравнения функция должна вернуть значения: 1 => Первый параметр должен стоять перед вторым -1=> Второй параметр должен стоять перед первым 0 => параметры в плане сортировки эквивалентны
__________________
Не ошибается то, что не работает. (с) Windows |
![]() |
Часовой пояс GMT +4, время: 00:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|