"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo ordenar matrices multidimensionales por una clave específica usando usort y la función de comparación personalizada?

¿Cómo ordenar matrices multidimensionales por una clave específica usando usort y la función de comparación personalizada?

Publicado el 2024-11-08
Navegar:955

How to Sort Multidimensional Arrays by a Specific Key Using usort and Custom Comparison Function?

Ordenar matrices multidimensionales por clave

Una tarea común cuando se trabaja con matrices multidimensionales es la necesidad de ordenarlas según una clave específica. Por ejemplo, considere la siguiente matriz:

Array (
[0] => Array
    (
        [iid] => 1
        [invitee] => 174
        [nid] => 324343
        [showtime] => 2010-05-09 15:15:00
        [location] => 13
        [status] => 1
        [created] => 2010-05-09 15:05:00
        [updated] => 2010-05-09 16:24:00
    )

[1] => Array
    (
        [iid] => 1
        [invitee] => 220
        [nid] => 21232
        [showtime] => 2010-05-09 15:15:00
        [location] => 12
        [status] => 0
        [created] => 2010-05-10 18:11:00
        [updated] => 2010-05-10 18:11:00
    ))

Para ordenar esta matriz por la tecla [estado], puede usar la función usort junto con una función de comparación personalizada:

// Define a comparison function
function cmp($a, $b) {
    if ($a['status'] == $b['status']) {
        return 0;
    }
    return ($a['status'] 

Al definir la función cmp, especifica cómo se deben comparar los elementos durante la clasificación. En este caso, compara la clave [status] de los dos elementos, devolviendo -1 si $a['status'] es menor que $b['status'], 0 si son iguales y 1 en caso contrario.

La función usort organiza los elementos de la matriz en orden ascendente según la salida de la función de comparación. Esto le permite ordenar la matriz multidimensional por la clave deseada, en este caso, [estado].

Declaración de liberación Este artículo se reimprime en: 1729422320 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3