Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou listando os diretórios:
$dirs = glob("*", GLOB_ONLYDIR);
Até aqui, tudo certo. Depois eu ordeno os infelizes:
asort($dirs, SORT_LOCALE_STRING);
Porém está acontecendo o seguinte, tenho diretórios que começam com underline, mas o asort os ignora!
Por exemplo, imaginem a seguinte estrutura:
Array
(
[0] => dirs/agua
[1] => dirs/água
[2] => dirs/Água 2
[3] => dirs/Águia
[4] => dirs/_algo mais
[5] => dirs/algo mais
)Array
(
[0] => dirs/_algo mais
[1] => dirs/agua
[2] => dirs/água
[3] => dirs/Água 2
[4] => dirs/Águia
[5] => dirs/algo mais
)Alguém tem alguma ideia de como conseguir isso?
Ahh! Só lembrando que atualmente, mesmo após a ordenação, o que está acontecendo é que o underline é ignorado, então a ordenação final acaba ficando do mesmo jeito como listado no primeiro exemplo de estrutura de diretórios, com o _algo mais na 5ª posição (índice 4 do array)...
:joia:
O problema do sort é que, se tenho diretórios que começam com letra maiúscula, eles são ignorados...
Vamos a outro exemplo:
$dirs = array("Cópia de diretório", "Mais", "Nota_Fiscal", "Outro", "_com_underline", "_arquivos", "_temp", "abacate", "acaso", "acácia", "água");
:seta: **sort com SORT_LOCALE_STRING:**
sort($dirs, SORT_LOCALE_STRING);
Array
(
[0] => abacate
[1] => acácia
[2] => acaso
[3] => água
[4] => _arquivos
[5] => _com_underline
[6] => Cópia de diretório
[7] => Mais
[8] => Nota_Fiscal
[9] => Outro
[10] => _temp
)
:seta: **sort sem SORT_LOCALE_STRING:**
sort($dirs);
Array
(
[0] => Cópia de diretório
[1] => Mais
[2] => Nota_Fiscal
[3] => Outro
[4] => _arquivos
[5] => _com_underline
[6] => _temp
[7] => abacate
[8] => acaso
[9] => acácia
[10] => água
)Preciso que seja ordenado dessa forma:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.paulodetarso.com/imasters/diretorios.png&key=59c964766fa6d0b2a0155bb395953ac91dfe26bc27fab6112b659ad7f7346939" alt="diretorios.png" />
Você pode fazer a ordenação apenas com o sort.
Fiz o seguinte teste e funcionou.