Глобус массив по числовому значению - PullRequest
2 голосов
/ 15 сентября 2011

Я использую glob для массива своих подкаталогов

<?php
$items = glob("../albums/*", GLOB_ONLYDIR);
foreach($items as $item) {
    echo "$item\n ";
}
?>

он упорядочивает их по алфавиту, я хотел бы упорядочить их по номерам

если я получил подкаталоги с именами 1, 3, 5, 10

будет организовано так: 10, 1, 3, 5

я хочу, чтобы они были такими 1, 3, 5, 10

есть вариант? спасибо

EDIT: теперь я нашел natsort ($ files); и когда я использую его с:

$items = array_slice(glob('albums/*', GLOB_ONLYDIR), 0, 4);
natsort($items);

и мои папки 995-1000 это дает мне этот массив: 995, 996, 997, 1000

Ответы [ 4 ]

6 голосов
/ 15 сентября 2011

Взгляните на natsort ()

4 голосов
/ 15 сентября 2011

используйте natsort для сортировки массива в естественном порядке:

natsort($array);
1 голос
/ 15 сентября 2011

Вы можете добиться этого, используя сортировку массива "natsort", как это

    <php
       $items = glob("../albums/*", GLOB_ONLYDIR);
       natsort($items);
    ?>

Теперь, если распечатать этот массив, вы получите правильный результат по этому.

    print_r($items);
1 голос
/ 15 сентября 2011

Вы можете отсортировать массив после глобуса:

sort($items, SORT_NUMERIC);
...