"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 de objetos de acuerdo con atributos específicos en PHP?

¿Cómo ordenar una matriz de objetos de acuerdo con atributos específicos en PHP?

Publicado el 2025-04-15
Navegar:679

How Can I Sort an Array of Objects in PHP Based on a Specific Property?

ordenar una matriz de objetos basados ​​en una propiedad específica

cuando manejará matrices de objetos, clasificándolos basados ​​en campos específicos puede ser esencial para la gestión de datos. Para lograr esto, se puede utilizar la función USORT, que habilita la personalización del comportamiento de comparación.

Función de comparación personalizada con usort:

para definir una función de comparación personalizada en Usort, siga este patrón:

function cmp($a, $b) {
    return strcmp($a->name, $b->name);
}

usort($your_data, "cmp");

En este ejemplo, la comparación se basa en la propiedad "nombre" de los objetos. Puede reemplazar "nombre" con cualquier propiedad relevante.

opciones de devolución de llamada alternativa:

aparte de usar una función dedicada, Usort también acepta cualquier llamable como el segundo argumento. Aquí hay algunas alternativas:

  • anonymous Function (php 5.3):
usort($your_data, function($a, $b) {
    return strcmp($a->name, $b->name);
});
  • Método de clase:
usort($your_data, array($this, "cmp")); // where "cmp" is a method in the class
  • flecha function (php 7.4):
usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));

comparando valores numéricos:

cuando ordene objetos basados ​​en propiedades numéricas, considere la siguiente función de comparación:

&&&] fn ($ a, $ b) => $ a-> count-$ b-> contar
fn($a, $b) => $a->count - $b->count

fn ($ a, $ b) => $ a-> count $ b-> count

Ú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