|
|
|
| Как известно, при сортировке массивов с помощью функции uksort необходимо задать свою функцию:
uksort(массив, своя_функция).
Меня интересует внутренний механизм (!) работы своей функции в таком примере (из мануалов):
function cmp($a, $b)
{
if ($a < $b) return -1;
if ($a == $b) return 0;
if ($a > $b) return 1;
}
$a = array(
4 => "four",
3 => "three",
20 => "twenty",
10 => "ten"
);
uksort($a, "cmp");
while (list($key, $value) = each($a))
{
echo "$key: $value\n";
}
?>
|
Правильно ли я понимаю, что каждый ключ массива сравнивается между собой, типа:
4 < 3
4 == 3
4 > 3
4 < 20 и т.д
Затем цикл для следующего ключа:
3 < 4
3 == 20 и т.д
Или я не верно мыслю?
Спасибо. | |
|
|
|
|
|
|
|
для: baston
(26.01.2010 в 15:18)
| | Что вам помешало вставить в начало функции print "$a $b<br>"; и убедиться воочию? | |
|
|
|
|
|
|
|
для: Саня
(27.01.2010 в 00:05)
| | Недостаточная сообразительность + неразвитое логическое мышление. :))
Спасибо. | |
|
|
|