Ordina numeri in modo crescente

maced

Utente Attivo
30 Nov 2011
48
0
6
Ho il seguente script
PHP:
echo "<select name=\"da\">";
$dirs = glob("archivi/$azi/$dip/presenze/$anno/$mese/*.txt"); 
foreach($dirs as $dir) 
{ 
$da = explode("-", $dir);
$da2 = explode(".", $da[2]);
echo "<option>$da2[0]</option>";
}
echo "</select

$da2[0] sono tutti numeri che vanno da 1 a 31 il problema che non vengono ordinati in modo crescente in maniera corretta me li mette (1 10 11 ecc 2 20 21 ecc)
come faccio per ovviare al problema in modo che me li metta ( 1 2 3 4 5 ecc ecc)

Grazie in anticipo
 
Prova ad usare la funzione sort() su $dirs, in modo da ordinare l'array
PHP:
$dirs = glob("archivi/$azi/$dip/presenze/$anno/$mese/*.txt");
sort($dirs);
foreach($dirs as $dir)  
{  
$da = explode("-", $dir); 
$da2 = explode(".", $da[2]); 
echo "<option>$da2[0]</option>"; 
}
 
Ultima modifica:
niente da fare avevo già provato

$da2[0] è questa la variabile da ordinare
 
Prova con ksort() sempre su $dirs, $da2 essendo in un ciclo ed essendo anche un explode non serve a molto ordinarlo perchè
ogni volta da il risultato di un valore di $dirs
 
ciao
usa natsort, se da come ho capito ottieni un array del tipo che ho indicato
ho commenato glob e mod l'echo per vedere come viene
PHP:
<?php
//.....
//$dirs = glob("archivi/$azi/$dip/presenze/$anno/$mese/*.txt");
//immagino che $dirs contenga un array del tipo
$dirs=array('pinco-1.txt','pinco-2.txt','pinco-12.txt','pinco-3.txt','pinco-10.txt');
natsort($dirs);
foreach($dirs as $dir){  
	$da = explode("-", $dir); 
	$da2 = explode(".", $da[1]); 
	echo "$da2[0]<br>"; 
}
//........ 
?>
se l'array che ottieni dal glob è come ho scritto i numeri vengono:
1
2
3
10
12
 

Discussioni simili