array_multisort() es una función incorporada en PHP que se usa para ordenar varias arrays a la vez o una array multidimensional con cada dimensión individual.
Con esta función, se debe recordar que las claves de string se mantendrán, pero las claves numéricas se reindexarán, comenzando en 0 y aumentando en 1.
Sintaxis:
bool array_multisort($array1, sorting_order, sorting_type, $array2..)
Parámetros: la array generalmente toma un parámetro que es la array que debe ordenarse. Pero además, la función puede tomar otros dos parámetros opcionales sorting_order y sorting_type.
- $array1 : este parámetro especifica la array que queremos ordenar.
- sorting_order : este parámetro especifica el orden a utilizar, es decir, en orden ascendente o descendente. El valor predeterminado de este parámetro es SORT_ASC. Es decir, ordenar en orden ascendente. Para ordenar en orden descendente tendremos que configurar este parámetro en SORT_DESC.
- sorting_type : este parámetro especifica las opciones de clasificación para las arrays y son las siguientes:
- SORT_REGULAR: Compara elementos regularmente (ASCII estándar).
- SORT_NUMERIC: Compara elementos como valores numéricos.
- SORT_STRING: Compara elementos como valores de string.
- SORT_LOCALE_STRING: Compara elementos como una string, según la configuración regional actual.
- SORT_NATURAL: Compara elementos como strings usando «ordenamiento natural».
- SORT_FLAG_CASE: se puede combinar (OR bit a bit) con SORT_STRING o SORT_NATURAL para ordenar las strings sin distinguir entre mayúsculas y minúsculas.
Si queremos ordenar varios arreglos, podemos pasarlos como parámetros como $arreglo2, $arreglo3… seguidos de su orden_clasificación, tipo_clasificación.
Valor devuelto: la función array_multisort() devuelve un valor booleano. Es decir, devolverá VERDADERO en caso de éxito y FALSO en caso de error.
Nota: si dos miembros al comparar se vuelven iguales, su orden relativo en la array ordenada no está definido.
Los siguientes programas ilustran la función array_multisort():
Programa 1:
<?php // Input array $animals = array("Dog", "Cat", "Horse", "Bear", "Zebra", "Lion"); // sorting array using default values // for sorting_order and sorting_type array_multisort($animals); print_r($animals); ?>
Producción:
Array ( [0] => Bear [1] => Cat [2] => Dog [3] => Horse [4] => Lion [5] => Zebra )
Programa 2:
<?php // Input arrays $array1=array("Dog", "Cat"); $array2=array("Fido", "Missy"); // sorting multiple arrays using default values // for sorting_order and sorting_type array_multisort($array1, $array2); // printing sorted arrays print_r($array1); print_r($array2); ?>
Producción:
Array ( [0] => Cat [1] => Dog ) Array ( [0] => Missy [1] => Fido )
Programa 3:
<?php // Input arrays $array1=array("Dog", "Dog", "Cat"); $array2=array("Pluto", "Fido", "Missy"); // sorting multiple arrays array_multisort($array1, SORT_ASC, $array2, SORT_DESC); // Printing sorted arrays print_r($array1); print_r($array2); ?>
Producción:
Array ( [0] => Cat [1] => Dog [2] => Dog ) Array ( [0] => Missy [1] => Pluto [2] => Fido )
Referencia :
http://php.net/manual/en/function.array-multisort.php