Сортировка массива: Запрос > массив > setlocale > sort

Статус
В этой теме нельзя размещать новые ответы.

Tyn

Новичок
Сортировка массива: Запрос > массив > setlocale > sort

Делаю выборку с базы, получаю массив:

PHP:
Array ( [0] =>   2009 [1] =>   podliva [2] =>   музыка [3] =>   girl [4] =>   файна [5] =>   косплей [6] =>   юкрайна [7] =>  ..... )
setlocale(LC_ALL, 'ru_RU.cp1251');
sort($bD, SORT_LOCALE_STRING);
reset($bD);

while (list($key, $val) = each($bD)) {
echo $val . "\n";
}

в итоге:
PHP:
podliva   косплей   музыка   евровидение   лорак   mp3   юмор   прикол   файна   юкрайна   2009   word 2007  ....
а нужной сортировки по русским буквам нету :(
непойму где я туплю :(
 

Фанат

oncle terrible
Команда форума
а если сделать лицо попроще и сортировать без локалей?
 

Tyn

Новичок
Автор оригинала: *****
а если сделать лицо попроще и сортировать без локалей?
setlocale(LC_ALL, 'ru_RU.cp1251');
sort($bD);
reset($bD);
PHP:
podliva   косплей   музыка   евровидение   лорак   mp3   юмор   прикол   файна


sort($bD);
reset($bD);
PHP:
podliva   косплей   музыка   евровидение   лорак   mp3   юмор   прикол   файна
 

zerkms

TDD infected
Команда форума
ололо?
PHP:
<?php

$str = "podliva косплей музыка евровидение лорак mp3 юмор прикол файна";
$array = explode(" ", $str);

var_dump($array);

/*
array(9) {
  [0]=>
  string(7) "podliva"
  [1]=>
  string(7) "косплей"
  [2]=>
  string(6) "музыка"
  [3]=>
  string(11) "евровидение"
  [4]=>
  string(5) "лорак"
  [5]=>
  string(3) "mp3"
  [6]=>
  string(4) "юмор"
  [7]=>
  string(6) "прикол"
  [8]=>
  string(5) "файна"
}
*/

sort($array);

var_dump($array);
/*
array(9) {
  [0]=>
  string(3) "mp3"
  [1]=>
  string(7) "podliva"
  [2]=>
  string(11) "евровидение"
  [3]=>
  string(7) "косплей"
  [4]=>
  string(5) "лорак"
  [5]=>
  string(6) "музыка"
  [6]=>
  string(6) "прикол"
  [7]=>
  string(5) "файна"
  [8]=>
  string(4) "юмор"
}
*/
но, повторюсь, сортировать нужно средствами субд, ORDER BY
 

Tyn

Новичок
но у меня так не сортирует ...
mysql сортирует без проблем и правильно, но надо именно массив отсортировать

PHP:
var_dump($array);
array(19) {   
[0]=>   string(6) "2 2009"   
[1]=>   string(16) "1 podliva"   
[2]=>   string(9) "11 музыка"   
[3]=>   string(6) "9 girl"   
[4]=>   string(8) "17 файна"   
[5]=>   string(10) "10 косплей"   
[6]=>   string(10) "18 юкрайна"   
[7]=>   string(6) "3 test"

sort($array);
var_dump($array); 

array(19) {
  [0]=>
  string(16) "1 podliva"
  [1]=>
  string(10) "10 косплей"
  [2]=>
  string(9) "11 музыка"
  [3]=>
  string(14) "12 евровидение"
  [4]=>
  string(8) "13 лорак"
  [5]=>
  string(6) "14 mp3"
  [6]=>
  string(7) "15 юмор"
  [7]=>
  string(9) "16 прикол"
  [8]=>
  string(8) "17 файна"
 

Фанат

oncle terrible
Команда форума
это был единственный вопрос, на который оно решило ответить
 

Tyn

Новичок
Автор оригинала: *****
это был единственный вопрос, на который оно решило ответить
оно?? вы товарищ наглый оказывается?
лучше по делу скажите, а если нечего то лучше промолчите
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху