2015-07-29 2 views
2

У меня есть следующие файлы в моем каталоге - case-1.gz , case-2.gz, ........ , case-12.gz, index.xml. Ниже мой код для сортировки файлов в алфавитном порядке -Сортировка .gz файлов в каталоге

$dir = '/var/www/html/es/a'; 
$files = array_diff(scandir($dir,1), array('..', '.', 'index.xml')); 
print_r($files); 

, который выводит следующим образом -

Array 
(
    [1] => case-9.gz 
    [2] => case-8.gz 
    [3] => case-7.gz 
    [4] => case-6.gz 
    [5] => case-4.gz 
    [6] => case-3.gz 
    [7] => case-2.gz 
    [8] => case-12.gz 
    [9] => case-11.gz 
    [10] => case-10.gz 
    [11] => case-1.gz 
) 

мне нужно иметь массив с рисунком case-12.gz, case-11.gz, case-10.gz, case-8.gz, ........ , case-1.gz

Также в моем выводе выше смещение 0 массива отсутствует, поскольку мне нужно получить доступ к самым большим отсортированным файлам в массиве.

ответ

0

Вы должны использовать natsort вместе с array_reverse как

natsort($arr); 
$array = array_reverse($arr); 
print_r($array); 

Fiddle

+0

Спасибо за ваш ответ, но смещение 0 все еще отсутствует в массиве. У вас есть представление об этом? –

+0

Я думаю, что это может быть из-за 'array_diff' –

+1

Извините, ваш ответ совершенно прав. –

0

Из documentationnatsort):

<?php 
natsort($files); 
print_r($files); 
?> 
+0

Спасибо за ваш ответ, но смещение 0 до сих пор отсутствует в массиве. У вас есть представление об этом? –

Смежные вопросы