ФорумПрограммированиеPHP для идиотов → сортировка русских букв через жопу

сортировка русских букв через жопу

  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz Окт. 22, 2012, 12:25 п.п.

    проблема в следующем:
    есть простой массив по ключам, но с русскими буквами: 1, 3, 2а, 2, 2б
    хочу отсортировать 1, 2, 2а… вроде все просто, ан нет :(
    перебрал уже всю доку и из всего найденного ближе всего к результату
    ksort( $arr, SORT_NUMERIC )
    но так нет, оно мне элементы с русскими буквами ставит выше элемнтов без букв
    1, 2а, 2б, 2, 3
    уже сломал весь моск или то, что вместо него с утра обретается…

    может кто сталкивался или знает как такое решать?
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало
  • SVat

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz Окт. 22, 2012, 12:47 п.п., спустя 1 минуту 30 секунд

    Попробуйте SORT_STRING или SORT_LOCALE_STRING
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Окт. 22, 2012, 1:50 п.п., спустя 1 час 2 минуты 25 секунд


    ksort( $arr, SORT_NUMERIC )
    но так нет, оно мне элементы с русскими буквами ставит выше элемнтов без букв
    Если быть совсем точным, оно ставит не выше и не ниже, а "как придется". SORT_LOCALE_STRING - да, по идее должен работать правильно.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Окт. 22, 2012, 1:55 п.п., спустя 5 минут 3 секунды

    SORT_LOCALE_STRING: а как насчет двух- и более значных чисел?
    1
    10

    2
    3

    так устраивает? сдается мне, тут без uksort() не обойтись
    ιιlllιlllι унц-унц
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Окт. 22, 2012, 2:08 п.п., спустя 13 минут 15 секунд


    сдается мне, тут без uksort() не обойтись


    Уговорил: :)))

    uksort($arr, function($a, $b) {
      return strnatcmp($a, $b);
    });

  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz Окт. 22, 2012, 2:33 п.п., спустя 24 минуты 42 секунды

    благодарствую!
    ща пойду проверять
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz Окт. 22, 2012, 2:35 п.п., спустя 2 минуты 34 секунды


    благодарствую!
    ща пойду проверять
    Проблема решена? Уже можно начинать гавном обкидывать?
  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz Окт. 23, 2012, 2:15 п.п., спустя 23 часа 39 минут 55 секунд

    проблема решалась в теории, на сервер ушло решение, описанное мной в начале "как есть", ибо мне интересно "почему и как", а серверу пофиг :)

    это программирование ради программирования - работодателю до лампочки как именно сортируется: главное 10 после 9, а не после 1 :)

    всем спасибо!
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Окт. 23, 2012, 2:34 п.п., спустя 18 минут 48 секунд

    Пипец
  • s_s

    Сообщения: 61 Репутация: N Группа: Кто попало

    Spritz Окт. 23, 2012, 3:09 п.п., спустя 34 минуты 51 секунду

    такое чувство что меня наебали.
  • m15

    Сообщения: 14 Репутация: N Группа: Кто попало

    Spritz Окт. 29, 2012, 1:01 п.п., спустя 5 дней 21 час 52 минуты

    да ладно, прям сразу такое чувство? :)
    или мы тут собрались мир сделать добрым и умным?
    была тема - кто захотел, тот высказался - коротко и ясно..
    жаль конечно, что тема малая и говном не покидаешь, но можно еще спросить: а зачем мне это нужно? а какова роль данной задачи в парадигме проекта в целом? а почему я в галстуке такие глупости спрашиваю? а где тут защита от инъкции и где она сама? или почему Саррочка продает розовые стринги? и тп

    нашли небольшое директ-решение для некоммерческой задачи - это же лучше если бы мы дружно зарабатывали только мне на хлебушко :)

    главное, я понял куда думать и как решать подобное в будущем, да и остальным, как мне кажется, решение задачки не лишним будет…

    алоха, братья!
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Окт. 29, 2012, 1:22 п.п., спустя 20 минут 40 секунд

    не читал, но алоха
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!