Регистронезависимая сортировка массива

Shiz

Новичок
Регистронезависимая сортировка массива

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

A.bmp
B.bmp
C.bmp
a.bmp
b.bmp
c.bmp

требуется:

A.bmp
a.bmp
B.bmp
b.bmp
C.bmp
c.bmp

Как так сделать?

Заранее спасибо...
 

sakon

П..и.н..ок
>Как так сделать?
Например посмотреть в мануале. [m]array[/m]
 

.des.

Поставил пиво кому надо ;-)
usort тут не нужен.
используйте natcasesort
 

sakon

П..и.н..ок
ksnk
Если даешь точный адрес - давай точнее [m]natcasesort[/m]
 

Bruteork

Guest
мануал php.net рулит



PHP:
For a case insensitive sort use this array_multisort().

<?php
$array_var = Array("Cheery", "zap", "Banana", "apple", "Zing");

array_multisort((strtolower($array_var)), SORT_ASC, SORT_STRING, $array_var);
?>

Result order:
apple
Banana
Cheery
zap
Zing
 

.des.

Поставил пиво кому надо ;-)
Bruteork, поздравляю пальцем в ... небо.
Воздержитесь от подобных комментариев, пожалуйста.
 

white phoenix

Новичок
PHP:
$array = array(
'A.bmp',
'B.bmp',
'C.bmp',
'a.bmp',
'b.bmp',
'c.bmp'
);
usort($array,'strnatcasecmp');
/*
array(6) {
  [0]=>
  string(5) "a.bmp"
  [1]=>
  string(5) "A.bmp"
  [2]=>
  string(5) "b.bmp"
  [3]=>
  string(5) "B.bmp"
  [4]=>
  string(5) "c.bmp"
  [5]=>
  string(5) "C.bmp"
}
*/
Но это не совсем так как предложено в задаче.
 

white phoenix

Новичок
sakon
Такой уж алгоритм "естественного упорядочения", можно сделать свою callback для [m]usort[/m].
 
Сверху