Просмотр полной версии : вопрос по функции сортировки массива usort() в ПХП
Люди!!!
Кто знаеть, расскажите поподробнее о функции usort()...
и если мона с примерами...
заранее спсбо... ;)
DeepDiver
01.04.2002, 09:39
сортирует массив используя юзерскую функцию для сравнения элементов.
Например сортировка по четым/нечетным значениям массива
$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);
Спасибо за ответ - тока тут возникает такой вопросы:
1) зачем мы даём ф-ции параметры, если потом их не указываем при вызове ф-ции,
2) и что нам даёт возвращение функцией 1, -1 или 0?
:confused: :confused: :confused:
DeepDiver
02.04.2002, 02:26
1) Параметры функции, которая передается usort() строго фиксированы - это два параметра, в которых будует передаваться два элемента массива для сравнения.
2) В результате сравнения функция должна вернуть значения:
1 => Первый параметр должен стоять перед вторым
-1=> Второй параметр должен стоять перед первым
0 => параметры в плане сортировки эквивалентны
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.