Descripción
bool
array_multisort ( array matriz1 [, mixed arg [, mixed ___ [, array ___]]])
array_multisort() puede usarse para ordenar varias
matrices al tiempo o una matriz multi_dimensional de acuerdo a una de
sus varias dimensiones_ La función mantiene la
asociación de claves cuando realiza es ordenamiento_
Las matrices de entrada son tratadas como columnas de una tabla que
deberá ser ordenada por filas _ de forma similar a la
funcionalidad de una sentencia SQL ORDER BY_ La primera matriz es
considerada la primaria para el ordenamiento_ Las filas (valores) en
esa matriz que sean comparadas como iguales son ordenadas por la
siguiente matriz de entrada, y así sucesivamente_
La estructura de argumentos de esta función es un poco inusual,
pero flexible_ El primer argumento de todos debe ser una
matriz_ Subsecuentemente, cada argumento puede ser o una matriz o una
bandera de ordenamiento de las siguientes_
Banderas de orientación del ordenamiento:
Banderas de tipo de ordenamiento
SORT_REGULAR _ comparar elementos normalmente
SORT_NUMERIC _ comparar elementos numéricamente
SORT_STRING _ comparar elementos como cadenas
No pueden especificarse dos banderas de ordenamiento del mismo tipo
luego de cada matriz_ Las banderas de ordenamiento especificadas a
continuación de un argumento matriz se aplican sólo a
esa matriz _ estos valores son restablecidos de vuelta a SORT_ASC y
SORT_REGULAR antes de cada nuevo argumento matriz_
Devuelve TRUE si todo se
llevó a cabo correctamente, FALSE en caso
de fallo_
Ejemplo 1_ Ordenamiento de varias matrices <?php
$matriz1 = array("10", 100, 100, "a");
$matriz2 = array(1, 3, "2", 1);
array_multisort($matriz1, $matriz2);
?> |
|
En este ejemplo, después del ordenamiento, la primera matriz
contendrá los valores 10, "a", 100, 100_ La segunda matriz
contendrá 1, 1, "2", 3_ Las entradas en la segunda matriz que
correspondían a las entradas idénticas de la primera
matriz (100 y 100) fueron ordenadas también_
Ejemplo 2_ Ordenamiento de una matriz multi_dimensional <?php
$matriz = array(array("10", 100, 100, "a"), array(1, 3, "2", 1));
array_multisort($matriz[0], SORT_ASC, SORT_STRING,
$matriz[1], SORT_NUMERIC, SORT_DESC);
?> |
|
En este ejemplo, después del ordenamiento, la primera matriz
contendrá 10, 100, 100, "a" (fue ordenada como cadenas en orden
ascendente), y la segunda tendrá 1, 3, "2", 1 (ordenada como
números, en orden descendiente)_