3 votes

Tableau global par valeur numérique

J'utilise le glob pour mettre en tableau mes sous-répertoires.

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

il les ordonne par l'alphabet, j'aimerais les ordonner par les chiffres

si j'ai des sous-répertoires nommés 1 , 3 , 5 , 10

ils seront disposés de la manière suivante : 10, 1, 3, 5

je veux qu'ils soient comme ça 1, 3, 5, 10

Y a-t-il une option ? Merci.

EDITAR: maintenant j'ai trouvé natsort($files) ; et quand je l'utilise avec :

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

et mes dossiers sont 995-1000 cela me donne ce tableau : 995, 996, 997, 1000

8voto

Niko Points 16715

Jetez un coup d'œil à natsort()

5voto

Headshota Points 11302

Utiliser natsort pour trier le tableau dans l'ordre naturel :

natsort($array);

1voto

Alexander Sulfrian Points 1270

Vous pourriez trier le tableau après le glob :

sort($items, SORT_NUMERIC);

1voto

pravat231 Points 343

Vous pouvez y parvenir en utilisant le tri des tableaux natsort() comme ça ;

$items = glob("../albums/*", GLOB_ONLYDIR);
natsort($items);

Maintenant, si vous imprimez ce tableau, vous obtiendrez le bon résultat.

print_r($items);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X