[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция asort()
brizzz
тут столкнулся с неожиданностью:

PHP
<?
$ar["1"] = "10";
$ar["2"] = "10";
$ar["3"] = "10";

print_r($ar);
arsort ($ar);
echo 
"<br /><br />";
print_r($ar);



возвращает:
PHP
Array ( [1] => 10 [2] => 10 [3] => 10 )

Array ( [
3] => 10 [2] => 10 [1] => 10 )


Не пойму почему элементы в обратном порядке отсортированы? Значения ведь одинаковы, зачем исходный массив менять... Это стандартное поведение функции?



Спустя 21 минута, 51 секунда (7.05.2009 - 00:36) KUZNEC написал(а):
Описание
bool arsort ( array &$array [, int $sort_flags] )

Эта функция сортирует массив в обратном порядке таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассаоциативных массивов, когда важно сохранить отношение ключ => значение.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


сорри невнимательно прочитал имя функции

Спустя 2 минуты, 7 секунд (7.05.2009 - 00:38) kirik написал(а):
Интересная фишка. Скорее всего это как-то связано со сравнением элементов, например значения начинают сравниваться с конца исходного массива.

Цитата (brizzz @ 6.05.2009 - 16:14)
Это стандартное поведение функции?

Похоже что да, у меня тоже так сортирует.

Спустя 2 минуты, 1 секунда (7.05.2009 - 00:40) kirik написал(а):
KUZNEC, она сортирует значения, а не ключи. Тоесть поидее она не должна перемещать элементы массива с одинаковыми ключами относительно друг друга, а она перемещает smile.gif

Спустя 45 минут, 6 секунд (7.05.2009 - 01:25) brizzz написал(а):
обидно, черт возьми... подстава блин sad.gif

Спустя 2 минуты, 37 секунд (7.05.2009 - 01:28) kirik написал(а):
Цитата (brizzz @ 6.05.2009 - 17:25)
обидно, черт возьми... подстава блин

Напиши сортировку сам с использованием usort(). smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.