Tri avec natcasesort()

Répondre
Pegasus
le 13/07/2006 à 00:19
Pegasus
Bonsoir,

J'ai un petit probleme avec la function natcasesort, j'ai un dossier avec les pseudos des membres en ligne donc une liste de fichier au nom du pseudo sans extension ex :
mem
Mem
nono
Nini

voici mon script :

$dossier = "en_ligne/";
$array = array(); $dir = opendir($dossier);
$i = 0;
while ($File = readdir($dir)){
if($File != "." && $File != ".." && $File != "index.php") {
$array[] = "$File";
}
$i++;
}
closedir($dir);
natcasesort($array);
$max = count($array);
for($i = 0; $i != $max; $i++){
echo $array[$i]."";
}

Tous ça fonctionne tres bien avec un sort() sauf qu'il ne veut pas m'afficher ça par ordre alphabétique sans prendre compte des majuscules et minuscules (il tri d'abord les majuscules puis les minuscules) ensuite avec natcasesort tout et dans le desordre ??.

Si vous avez une idée du probleme, je suis tout ouie ^^

merciiii
<-- Observe, écoute et retiens -->
moogli
le 13/07/2006 à 19:41
moogli
Salut,

chez moi ça fonctionne :)
<?php
$array3 = array( 'mem',
'Mem',
'nono',
'Nini',);
natcasesort($array3);
echo '<pre>',var_dump($array3),'</pre>';
?>


array(4) {
[0]=>
string(3) "mem"
[1]=>
string(3) "Mem"
[3]=>
string(4) "Nini"
[2]=>
string(4) "nono"


oublie la boucle for afficher un tableau, utilise foreach
donne nous un exemple du résultat de ta fonction et de ce que tu veut ( utilise le wall si besoin ;) )

@+
Il en faut peu pour être heureux !!!!!
Pegasus
le 13/07/2006 à 21:44
Pegasus
Merci beaucoup moogli tu avais raison il fallait laisser tomber la boucle for et passer en foreach comme ceci :

$dossier = "en_ligne/";
$array = array();
$dir = opendir($dossier);
WHILE($file = readdir($dir)){
if($file != "." && $file != ".."){
$array[] = "$file";
}
}
closedir($dir);
natcasesort($array);
foreach ($array as $i => $membre) {
echo $membre."";
}

La tout est bon, encore merci smiley
<-- Observe, écoute et retiens -->
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours