Función array_multisort
La función array_multisort permite ordenar múltiples arrays simultáneamente
o realizar una ordenación compleja de arrays multidimensionales según uno o varios criterios.
Sintaxis
array_multisort(
array1,
[sorting_order = SORT_ASC],
[sorting_type = SORT_REGULAR],
array2,
array3,
...
);
Parámetro sorting_order
El parámetro sorting_order define
la dirección de la ordenación. Estos son sus valores:
| Parámetro | Descripción |
|---|---|
SORT_ASC |
Ordenación ascendente (valor por defecto). |
SORT_DESC |
Ordenación descendente. |
Parámetro sorting_type
El parámetro sorting_type define
el tipo de comparación de elementos. Estos son sus valores:
| Parámetro | Descripción |
|---|---|
SORT_REGULAR |
Comparación normal de elementos (por defecto). |
SORT_NUMERIC |
Comparación numérica de elementos. |
SORT_STRING |
Comparación de cadenas de elementos. |
SORT_LOCALE_STRING |
Comparación de cadenas según la configuración regional actual. |
SORT_NATURAL |
Ordenación natural de cadenas (como en el explorador de archivos). |
SORT_FLAG_CASE |
Se combina con SORT_STRING o SORT_NATURAL para ordenación sin distinción entre mayúsculas y minúsculas. |
Ejemplo
Ordenación de dos arrays especificando parámetros:
<?php
$numbers = [10, 2, 15, 4];
$letters = ['b', 'a', 'd', 'c'];
array_multisort(
$numbers, SORT_DESC, SORT_NUMERIC,
$letters, SORT_ASC, SORT_STRING
);
print_r($numbers);
print_r($letters);
?>
Resultado de ejecutar el código:
[15, 10, 4, 2]
['d', 'b', 'c', 'a']
Ejemplo
Ordenación de un array multidimensional por un campo determinado:
<?php
$data = [
['name' => 'John', 'age' => 25],
['name' => 'Alice', 'age' => 22],
['name' => 'Bob', 'age' => 30]
];
$ages = array_column($data, 'age');
array_multisort($ages, SORT_ASC, $data);
print_r($data);
?>
Resultado de ejecutar el código:
[
['name' => 'Alice', 'age' => 22],
['name' => 'John', 'age' => 25],
['name' => 'Bob', 'age' => 30]
]
Ejemplo
Ordenación de un array multidimensional por dos campos determinados:
<?php
$data = [
['name' => 'John', 'age' => 25],
['name' => 'alice', 'age' => 22],
['name' => 'Bob', 'age' => 30]
];
$names = array_column($data, 'name');
$ages = array_column($data, 'age');
array_multisort(
$names, SORT_ASC, SORT_STRING | SORT_FLAG_CASE,
$ages, SORT_DESC,
$data
);
print_r($data);
?>
Resultado de ejecutar el código:
[
['name' => 'alice', 'age' => 22],
['name' => 'Bob', 'age' => 30],
['name' => 'John', 'age' => 25]
]
Ejemplo
Ordenación natural de cadenas:
<?php
$files = ['file1.txt', 'file10.txt', 'file2.txt'];
array_multisort($files, SORT_ASC, SORT_NATURAL);
print_r($files);
?>
Resultado de ejecutar el código:
['file1.txt', 'file2.txt', 'file10.txt']
Ejemplo
Ordenación sin distinción entre mayúsculas y minúsculas:
<?php
$words = ['Apple', 'banana', 'cherry', 'apricot'];
array_multisort($words, SORT_ASC, SORT_STRING | SORT_FLAG_CASE);
print_r($words);
?>
Resultado de ejecutar el código:
['Apple', 'apricot', 'banana', 'cherry']
Ver también
-
la función
sort,
que ordena en orden ascendente de elementos -
la función
rsort,
que ordena en orden descendente de elementos -
la función
ksort,
que ordena en orden ascendente de claves -
la función
krsort,
que ordena en orden descendente de claves -
la función
asort,
que ordena en orden ascendente de elementos manteniendo las claves -
la función
arsort,
que ordena en orden descendente de elementos manteniendo las claves -
la función
natsort,
que ordena de forma natural -
la función
natcasesort,
que ordena de forma natural sin distinguir mayúsculas y minúsculas -
la función
usort,
que ordena mediante una función de callback -
la función
uksort,
que ordena las claves mediante una función de callback -
la función
uasort,
que ordena mediante una función de callback manteniendo las claves