Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent

<?php
$nomi=Array(1=>'Francesca','Daniele','Martina','Giulia','Lina','Tonino'); /* In questo modo l'array inizia dal valore  1=> altrimenti iniziato da 0 */

$colori=Array("Colore1"=>'Rosso',"Colore2"=>'Giallo',"Colore3"=>'Verde'); /* Con questo metodo indicizziamo l'array con un valore personalizzato */

$result=Array("nomi"=>$nomi,"colori"=>$colori); /* In questi modo associamo 2 array*/

array_multisort(
$result['nomi'],SORT_ASC,SORT_STRING,  
$result['colori'],SORT_ASC,SORT_STRING);

print"<pre>";
print_r($result);
print"</pre>";
?>
inviato 5 anni fa
pugliesedaniele
modificato 5 anni fa
Gianni Tomasicchio
X 0 X

La funzione array_multisort si può applicare su due o più array solo se questi hanno lunghezza uguale, ovvero se contengono lo stesso numero di elementi.

Ad esempio si potrebbe applicare per ordinare un elenco di nominativi  costituito da un array contenente i nomi ed un altro array contenente i cognomi associati:

array_multisort($cognomi, $nomi);

array_multisort è in grado di ordinare i cognomi e di propagare questo ordinamento anche ai nomi in modo da non far perdere l'associazione tra nome e cognome della stessa persona. L'ordinamento sui nomi quindi segue quello applicato dalla funzione sui cognomi. Solo a parità di cognome verrà applicato l'ordinamento anche sul nome.

Ecco perché gli array su cui agisce array_multisort devono avere tutti la stessa lunghezza. Sono come le colonne di una tabella che vogliamo ordinare prima per la prima colonna, a parità di valori sulla prima colonna vogliamo ordinare sulla seconda, a parità di valori vogliamo considerare la terza e così via...

risposto 5 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda