Page 1 sur 1
Tri d'un tableau
Posté : 01 mars 2011, 14:53
par Herve_be
Bonjour,
Je veux mettre les noms des fichiers d'un dossier dans une table et la trier par ordre alphabétique.
Je fais comme ceci
function cmp($a,$b)
{
return ($a[0] < $b[0]) ? -1 : 1;
}
$dir = opendir("Images");
while($file = readdir($dir)) $tab[] = $file;
usort($tab, "cmp");
Ensuite j'affiche le contenu du tableau
foreach($tab as $elem) echo $elem."<br>";
Mais il n'est pas trié !
Où est l'erreur ?
Re: Tri d'un tableau
Posté : 01 mars 2011, 15:18
par moogli
salut,
par rapport a l'exemple de la doc ta fonction n'est pas bonne
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
?>
a tu essayer sort ?
pour récupérer le contenu d'un répertoire tu peut essayer la fonction
glob
@+
Re: Tri d'un tableau
Posté : 01 mars 2011, 16:28
par Herve_be
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
?>
Ben non, c'est la même chose, tu peux voir le résultat ici
http://www.rudyv.be/Aquarium/Images.php (c'est plus lfagrant à la fin).
Re: Tri d'un tableau
Posté : 01 mars 2011, 16:30
par stealth35
plus simple
glob +
natcasesort
Re: Tri d'un tableau
Posté : 01 mars 2011, 16:43
par Herve_be
Ma question ne concerne pas la recherche dans un dossier, il concerne le tri d'un tableau.
Re: Tri d'un tableau
Posté : 01 mars 2011, 17:29
par Herve_be
J'ai trouvé !
Il trie comme ceci
ATK.jpg
Absorption.jpg
Absorption2.jpg
Acropora bleu 2007-06.jpg
Acropora.jpg
Algue rouge.jpg
Alim RAC.jpg
...
Tunze 7095.jpg
Ver.jpg
Zelio 1.jpg
Zelio 2.jpg
Zelio ecran.jpg
cakh.jpg
cuve.jpg
cuve2.jpg
horloge.jpg
Simplement le tri commence par les majuscules, les minuscules vienennt ensuite !
A noter que j'ai essayé
asort($tab);
ça fonctionne aussi bien (enfin aussi mal) que la function cmp.
Alors la question devient : comment faire pour qu'il ne tienne pas compte de la casse ?