-
problema con sort
sort ordina una lista, ma se tu hai una cosa tipo:
30=Alice
10=Marco
15=Michele
43=Marta
Come fai a ordinare il tutto in base al "campo 1" (cioè il numero)?
io ci sono riuscito ma il mio metodo è formato da una trentina di righe.
per curiosità (e anche per un utilizzo futuro) mi chiedevo se esistesse un metodo più sintetico...
grazie anticipatamente
-
Per rispondere più dettagliatamente, cosa hai in ingresso? Un array di stringhe? Oppure sono due array separati del tipo:
Codice:
Array
(
[0] => 30
[1] => 10
[2] => 15
[3] => 43
)
Array
(
[0] => Alice
[1] => Marco
[2] => Michele
[3] => Marta
)
Ciao!
-
mi intesserebbero entrambi i casi
grazie anticipatamente
-
Codice PHP:
<?php
$a = array(30,10,15,43);
$b = array('Alice','Marco','Michele','Marta');
array_multisort($a,$b); //$b sarà ordinato come chiedi
print_r($b);
Codice PHP:
<?php
function ordina($a, $b)
{
$numero1 = substr($a,0,strpos($a,'='));
$numero2 = substr($b,0,strpos($b,'='));
if ($numero1 == $numero2)
{
return 0;
}
return ($numero1 < $numero2) ? -1 : 1;
}
$a = array('30=Alice','10=Marco','15=Michele','43=Marta');
usort($a,'ordina'); //$a sarà ordinato come chiedi
print_r($a);
EDIT:
forse intendevi:
Codice PHP:
<?php
$a = array(30=>'Alice',10=>'Marco',15=>'Michele',43=>'Marta');
ksort($a); //$a sarà ordinato come chiedi
print_r($a);
Ovviamente se intendevi diversamente chiedi pure. Anche se hai domande sul funzionamento chiedi pure, ma ho semplicemente utilizzato le funzioni base di PHP: guardando nella documentazione ufficiale dovresti capire facilmente il funzionamento.
Ciao!
-