За последние 24 часа нас посетили 21328 программистов и 1665 роботов. Сейчас ищут 727 программистов ...

Как сделать сортировку массива числе правильно.

Тема в разделе "PHP для новичков", создана пользователем ufaclub, 7 фев 2017.

  1. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    56
    Симпатии:
    0
    function sortThumbnails(&$thumbs, $order) {
    usort($thumbs, array('YOOGallery', 'compareThumbnails'));
    }

    вот функция.
    но она выводит файлы вот так

    1. 11.12.13.14.15.16.17.18.19.2.21......

    а должно быть 1.2.3.4.5.6.7.8.9.10.11.12.....
     
  2. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
    @ufaclub ну ты сортируешь по алфавиту, видимо нужно каждое имя типа 1 преобразовывать в 01 но отображать 1
     
    ufaclub нравится это.
  3. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    56
    Симпатии:
    0
    Спасибо!
     
  4. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
    @ufaclub точнее нужно както высчитывать скольно нулей дописывать типа 001 или 01
     
  5. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Нужно использовать алгоритм "natural ordering"
    PHP:
    1. <?php
    2. $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
    3.  
    4. asort($array1);
    5. echo "Обычная сортировка\n";
    6. print_r($array1);
    7.  
    8. natsort($array2);
    9. echo "\nСортировка natural order\n";
    10. print_r($array2);