array_multisort

(PHP 4 )

array_multisort -- Ordena múltiples matrices, o matrices multi-dimensionales

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

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).