- Home
- Categorie
- Coding e Sistemistica
- PHP
- natural sorting senza mantenimento di chiave
-
natural sorting senza mantenimento di chiave
Ciao a tutti, prima di tutto mi scuso se questo problema è già stato risolto, ma non ho trovato nulla a riguardo sul forum, e anche google non è stato di grande aiuto
Sto usando in uno script la funzione natsort(), e questo è il risultato:
[php]
$a = array(10,3,4,5,8,1,9);
natsort($a);//echo "<pre>", var_dump($a), "</pre>";
array(7) {
[5]=>
int(1)
[1]=>
int(3)
[2]=>
int(4)
[3]=>
int(5)
[4]=>
int(8)
[6]=>
int(9)
[0]=>
int(10)
}
[/php]Il risultato è l'array ordinato, ma gli indici sono stati mantenuti!!
se possibile vorrei che gli indici fossero rinumerati, arrivando a questo risultato:
[php]
array(7) {
[0]=>
int(1)
[1]=>
int(3)
[2]=>
int(4)
[3]=>
int(5)
[4]=>
int(8)
[5]=>
int(9)
[6]=>
int(10)
}[/php]Sapete come posso fare??grazie
-
Ciao Endorama se devi ordinare un array allora devi fare cosi:
[PHP]
for($i=0;$i<count($a)-1;$i++)
{
for($j=$i+1;$j<count($a);$j++)
{
if($a*>$a[$j])//cosi ordini in maniera cresciente
{
$var_temp=$a*;
$a*=$a[$j];
$a[$j]=$var_temp;
}
}
}
[/PHP]Se devi fare in maniera decresciente cambi la condizione del if(), se non ho capito male era quel che volevi.
-
Alla fine ho risolto così: semplice, pulito e efficace!!!
[php]
$values = array_values($var);
natsort($values);
[/php]
-
Ottimo!.