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 matriz. la función usort () es una de ellas. Esta función clasifica 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 puede ordenar de manera estándar utilizando otras funciones de tipo, entonces Usort () es mejor usar. Por ejemplo, si la matriz contiene valores de datos, la variedad no se puede ordenar adecuadamente utilizando otras funciones de tipo de PHP. Este tipo de colección se puede ordenar definiendo la función definida adecuada definida por el usuario 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.

Boolean Usort (Array $ Array, Callback ())

Esta función tiene dos argumentos. Ambos argumentos son obligatorios. El primer argumento toma la matriz que se ordenará. La función de devolución de llamada () compara los valores de la matriz para ordenar la matriz y devuelve un valor numérico. Si los argumentos de la función de devolución de llamada () son iguales, entonces la función devolverá 0. Si el primer argumento de la función de devolución de llamada () es mayor que el segundo argumento, devolverá 1. Si el primer argumento de la función de devolución de llamada () es más pequeño que el segundo argumento, devuelve -1. la función usort () devuelve verdadero para un orden exitoso y devuelve falso para un sort sin éxito. Algunos usos de esta función se han mostrado en la siguiente parte de este tutorial.

Ejemplo-1: ordene una matriz de valores de fecha

El siguiente ejemplo muestra cómo una matriz de valores de fecha se puede ordenar correctamente utilizando la función usort (). Cree 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 la función usort () se llama 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, entonces la función devolverá 0. Si el primer valor de la marca de tiempo es mayor que el segundo valor de marca de tiempo, entonces la función devolverá 1. Si el primer valor de marca de tiempo es más bajo 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 $ date_array se clasifica correctamente. A continuación, la matriz ordenada se imprimirá usando el para cada bucle.

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

// declarar la matriz de valores de fecha
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// imprime los valores de la matriz antes de clasificar
eco "

Los valores de la matriz de fechas:

";
foreach ($ date_array como $ valor)

Echo $ valor."
";

// Ordenar la matriz usando usort ()
usort ($ date_array, "sort_date");
// Imprima la matriz después del orden
eco "

La salida después de clasificar la matriz de fecha:

";
foreach ($ date_array como $ valor)

Echo $ valor."
";

?>

Producción:

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

Ejemplo-2: ordene una matriz asociativa

El siguiente ejemplo muestra cómo se puede ordenar una matriz asociativa utilizando la función usort (). Cree un archivo PHP con el siguiente script. sort_names () La 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 usa en el sort_names () función para comparar los valores de la matriz asociativa. Si los dos valores son iguales, entonces la función de devolución de llamada devolverá 0. Si el primer valor de argumento es mayor que el segundo valor de argumento, entonces la función de devolución de llamada devolverá 1. Si el primer valor de argumento es menor que el segundo valor de argumento, entonces la función de devolución de llamada devolverá -1. usort () ordenará la matriz utilizando la función de devolución de llamada, y la matriz ordenada se imprimirá usando el para cada bucle.

// Defina la función para ordenar la matriz asociativa
función sort_names ($ a, $ b)
devolver $ a == $ b ? 0: $ A> $ B ? 1: -1;

// Definir la matriz asociativa
$ personas = Array ("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: ordene una matriz bidimensional

El siguiente ejemplo muestra cómo se puede ordenar una matriz bidimensional utilizando la función usort (). Cree un archivo PHP con el siguiente script. sort_array () La 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 usa 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 primer valor de argumento es mayor que el segundo valor de argumento, entonces la función strcmp () devolverá 1. Si el primer valor de argumento es menor que el segundo valor de argumento, entonces la función strcmp () devolverá -1. usort () ordenará la matriz utilizando la función de devolución de llamada, y la estructura de la matriz ordenada se imprimirá utilizando el print_r () función.

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

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

// Declarar la matriz bidimencional
$ animales = array (array ("a" => "león"), array ("a" => "ciervo"), array ("a" => "conejo"), array ("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 ordenar correctamente las funciones 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 clasificar. Este tutorial ayudará a los lectores a saber cómo usar la función usort () y aplicarla en su script en función del requisito.