Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: uksort()
 
 автор: demonow   (31.01.2012 в 11:59)   письмо автору
 
 

Народ, не совсем понятен принцип работы, фнкции uksort().
Когда аргумент-функция возвращает 1,0,-1, то как она поступает с парой над которой происходит сравнение.

  Ответить  
 
 автор: cheops   (31.01.2012 в 12:05)   письмо автору
 
   для: demonow   (31.01.2012 в 11:59)
 

Либо оставляет без изменений, либо меняет положение элементов местами.

  Ответить  
 
 автор: demonow   (01.02.2012 в 14:29)   письмо автору
 
   для: cheops   (31.01.2012 в 12:05)
 

Ну вот есть массив
$files=array("bogdan.txt","my litle story.txt","my cat.jpg","my dog.jpg","This is SPARTA!!!.txt");
Допустим нужно отсортировать так что бы jpg файлы были в конце списка.
Пишем:

function cmp($a,$b)
{
if (strpos($a,"jpg") && !strpos($b,"jpg")) return 1;
if (!strpos($a,"jpg") && strpos($b,"jpg")) return -1;
}
uksort($files,"cmp");

А как дальше она переставляет элементы мне не понятно.
Можно поэтапно пож. обьяснить?

  Ответить  
 
 автор: cheops   (01.02.2012 в 16:19)   письмо автору
 
   для: demonow   (01.02.2012 в 14:29)
 

Ну довольно сомнительная функция для сортировки... так как здесь фактически нет сортировки в для случаев, когда оба файлы имеют расширение jpg или оба файла имеют другие расширения. Кроме того, последовательность jpg может быть не в расширении.

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования