php

Uso de la función usort () en PHP

Uso de la función usort () en PHP
Existen muchas funciones integradas en PHP para ordenar las variables de la matriz. La función usort () es una de ellas. Esta función ordena la matriz utilizando una función de devolución de llamada definida por el usuario. Cuando la matriz contiene un tipo particular de datos que no se pueden ordenar de una manera estándar mediante el uso de otras funciones de ordenación, es mejor usar usort (). Por ejemplo, si la matriz contiene valores de datos, entonces la variedad no se puede ordenar adecuadamente usando otras funciones de ordenación de PHP. Este tipo de colección se puede ordenar definiendo la función definida por el usuario adecuada llamada en el segundo argumento de la función usort () cómo la función usort () puede ordenar los valores de matriz específicos que se muestran en este tutorial.

Sintaxis:

La sintaxis de la función usort () se da a continuación.

Usort booleano (matriz $ matriz, devolución de llamada ())

Esta función tiene dos argumentos. Ambos argumentos son obligatorios. El primer argumento toma la matriz que se ordenará. La función callback () compara los valores de la matriz para ordenar la matriz y devuelve un valor numérico. Si los argumentos de la función callback () son iguales, la función devolverá 0. Si el primer argumento de la función callback () es mayor que el segundo argumento, devolverá 1. Si el primer argumento de la función callback () es más pequeño que el segundo argumento, devuelve -1. La función usort () devuelve verdadero para una ordenación exitosa y devuelve falso para una ordenación fallida. Algunos usos de esta función se muestran en la siguiente parte de este tutorial.

Ejemplo 1: ordenar una matriz de valores de fecha

El siguiente ejemplo muestra cómo una matriz de valores de fecha se puede ordenar correctamente usando la función usort (). Crea un archivo PHP con el siguiente script. $ date_array se define con valores de cinco fechas. sort_date () La función se declara como función de devolución de llamada para ordenar el $ date_array. Los valores de la matriz se imprimen antes de llamar a la función usort (). Cuando se llama a la función usort () con la matriz y la función de devolución de llamada, convertirá dos valores de fecha en valores de marca de tiempo utilizando la función strtotime (). Si los dos valores de la marca de tiempo son iguales, la función devolverá 0. Si el primer valor de marca de tiempo es mayor que el segundo valor de marca de tiempo, la función devolverá 1. Si el primer valor de marca de tiempo es menor que el segundo valor de marca de tiempo, la función devolverá -1. La función usort () llamará a la función de devolución de llamada varias veces hasta que $ date_array está ordenado correctamente. A continuación, la matriz ordenada se imprimirá utilizando el para cada círculo.

// Definir la función de devolución de llamada
function sort_date ($ a, $ b)
return strtotime ($ a) - strtotime ($ b);

// Declara la matriz de valores de fecha
$ matriz_fecha = matriz ('25-03-2020 ', '14-03-2020', '28-02-2015 ', '09-12-2017', '20-09-2015 ');
// Imprime los valores de la matriz antes de ordenar
eco "

Los valores de la matriz de fechas:

";
foreach ($ date_array como $ valor)

echo $ valor."
";

// Ordena la matriz usando usort ()
usort ($ date_array, "sort_date");
// Imprime la matriz después de ordenar
eco "

La salida después de ordenar la matriz de fechas:

";
foreach ($ date_array como $ valor)

echo $ valor."
";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Ejemplo 2: ordenar una matriz asociativa

El siguiente ejemplo muestra cómo se puede ordenar una matriz asociativa usando la función usort (). Crea un archivo PHP con el siguiente script. sort_names () función se declara una función de devolución de llamada para ordenar la matriz en función de los valores de la matriz. El operador ternario se utiliza en el sort_names () función para comparar los valores de la matriz asociativa. Si los dos valores son iguales, la función de devolución de llamada devolverá 0. Si el valor del primer argumento es mayor que el valor del segundo argumento, la función de devolución de llamada devolverá 1. Si el valor del primer argumento es menor que el valor del segundo argumento, la función de devolución de llamada devolverá -1. usort () ordenará la matriz usando la función de devolución de llamada, y la matriz ordenada se imprimirá usando el para cada círculo.

// Definir la función para ordenar la matriz asociativa
function sort_names ($ a, $ b)
devuelve $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Definir la matriz asociativa
$ personas = matriz ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Ordenar la matriz
usort ($ personas, "sort_names");
// Imprime la matriz ordenada
eco "Los valores de la matriz ordenada:
";
foreach ($ personas como $ persona)
echo $ persona. "
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Ejemplo 3: ordenar una matriz bidimensional

El siguiente ejemplo muestra cómo se puede ordenar una matriz bidimensional usando la función usort (). Crea un archivo PHP con el siguiente script. sort_array () función se declara una función de devolución de llamada para ordenar la matriz en función de los valores de la matriz. La función strcmp () se utiliza en la función de devolución de llamada para comparar los valores de la matriz. Si los dos valores son iguales, entonces la función strcmp () devolverá 0. Si el valor del primer argumento es mayor que el valor del segundo argumento, entonces la función strcmp () devolverá 1. Si el valor del primer argumento es menor que el valor del segundo argumento, entonces la función strcmp () devolverá -1. usort () ordenará la matriz usando la función de devolución de llamada, y la estructura de la matriz ordenada se imprimirá usando la print_r () función.

// Definir función para ordenar matriz bidimensional
función sort_array ($ a, $ b)

return strcmp ($ a ['a'], $ b ['a']);

// Declara la matriz bidimensional
$ animales = matriz (matriz ("a" => "León"), matriz ("a" => "Ciervo"), matriz ("a" => "Conejo"), matriz ("a" => "Mono "));
// Ordenar la matriz
usort ($ animales, "sort_array");
// Imprime la matriz ordenada
eco "Los valores de la matriz después de usort ():
";
print_r ($ animales);
eco "
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Conclusión:

usort () es una función útil para clasificar tipos particulares de datos que no pueden clasificar correctamente las funciones de clasificación normales de PHP. La función de devolución de llamada de la función usort () se define en función de los tipos de valores que se requieren para ordenar. Este tutorial ayudará a los lectores a saber cómo usar la función usort () y aplicarla en su script según el requisito.

Agregue gestos del mouse a Windows 10 con estas herramientas gratuitas
En los últimos años, las computadoras y los sistemas operativos han evolucionado enormemente. Hubo un momento en que los usuarios tenían que usar coma...
Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...
WinMouse le permite personalizar y mejorar el movimiento del puntero del mouse en una PC con Windows
Si desea mejorar las funciones predeterminadas del puntero del mouse, use el software gratuito WinMouse. Agrega más funciones para ayudarlo a aprovech...