Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> usort с параметром к сортфункции
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 12 дней
Карма:




Гутен таг.

Собственно, возможен ли САБЖ?

У меня есть массив обьектов, который нужно отсортировать. но, в зависимости от определенного значения (а именно текущей локали), сортировать мне его надо по разным полям (для разных языков)

Варианта пока что вижу 2. либо под каждый язык писать свою функцию (что бредово, ибо в будущем число языков может расти), либо юзать глобальную переменную приложения и ковырять локаль оттуда (но, насколько я понял, глобальные переменные - зло)

Вот и интересуюсь у вас, уважаемые - есть ли 3й вариант а-ля usort($arr, "cmp_func", $locale)? или еще какая хитрость?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 20 дней
Карма: 111




usort($arr, function($a1, $a2) use ($config) {

if($config['locale']){}

})



либо

$sorter = new Sorter('ru locale');

usort($arr, [$sorter, 'sort']);


в методе sort уже решаем что и как и тд)


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arogorns  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42151
На форуме: 1 год, 12 дней
Карма:




Цитата (bestxp @ 13.04.2016 - 14:09)
usort($arr, function($a1, $a2) use ($config) {

if($config['locale']){}

})



либо

$sorter = new Sorter('ru locale');

usort($arr, [$sorter, 'sort']);


в методе sort уже решаем что и как и тд)

ДанкеШон)) Первый метод помог.

вышло вот что:

usort($european_countries, function($a, $b) use ($app) {
return strcmp($a->name[$app['locale']], $b->name[$app['locale']]);
});
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса