PDA

Просмотр полной версии : uksort()


Илья К
15.08.2004, 15:52
Всем привет! Не понимаю, как работает uksort(). Вот пример:

<?php
function cmp($a, $b)
{
#echo "<table width='150px' border='1'><tr><td width='75px'>\$a: $a</td><td width='75px'>\$b: $b</td></tr></table>\n";
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}

$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");

uksort($a, "cmp");

while (list($key, $value) = each($a)) {
echo "<br>\n$key: $value";
}
?>

До return всё ясно. Функция возвращает -1 или 0, или 1, но что дальше происходит -- не понимаю.

P.S.http://php.segmenta.ru/manual/ru/function.uksort.php -- там уже был.:)

nagash
16.08.2004, 03:54
а дальше используя 1 \ 0 \ -1 функция ставит эллмент массива "перед" или "за" элементом массива, с которым сравнивается...

Илья К
16.08.2004, 18:38
То есть в итоге все ключи сравниваются друг с другом -- каждый с каждым... Ясно.
Спасибо!