"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 una matriz PHP basada en un pedido personalizado?

¿Cómo ordenar una matriz PHP basada en un pedido personalizado?

Publicado el 2025-03-24
Navegar:324

How to Sort a PHP Array Based on a Custom Order?

Custom Order Array Clasificación en php

Las matrices de clasificación en PHP se realizan típicamente a través de algoritmos basados ​​en comparación. Sin embargo, hay situaciones en las que necesita clasificar matrices basadas en un orden personalizado predefinido.

Considere una matriz de matrices donde cada sub-array contiene dos claves: "ID" y "Título". Desea ordenar la matriz principal en un orden específico, como:

[3452342, 5867867, 7867867, 1231233]

para lograr esto, puede utilizar la función ussort (). Esta función le permite especificar una función de comparación que define cómo se comparan los elementos de matriz.

, la función de comparación usa un cierre para comparar las posiciones de los valores de "id" en la matriz de orden personalizada ($ orden):

usort($array, function ($a, $b) use ($order) {
    $pos_a = array_search($a['id'], $order);
    $pos_b = array_search($b['id'], $order);
    return $pos_a - $pos_b;
});

La función de comparación asigna las posiciones de los valores de "id" en la matriz $ orden a $ pos_a y $ pos_b. Luego resta estas posiciones para determinar el orden ($ A viene antes de $ B Si $ POS_A es menor que $ POS_B).

usando la matriz de pedidos personalizados y la función de comparación, puede ordenar efectivamente su matriz de matrices en el orden predefinido.

Ú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