"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 comparar matrices de objetos por valores de columna utilizando funciones de matriz?

¿Cómo comparar matrices de objetos por valores de columna utilizando funciones de matriz?

Publicado el 2024-11-07
Navegar:114

How to Compare Arrays of Objects by Column Values Using Array Functions?

Comparación de matrices de objetos por valores de columna utilizando funciones de matriz

Muchos lenguajes de programación ofrecen funciones integradas para comparar matrices. Sin embargo, estas funciones normalmente funcionan con matrices y tipos de datos primitivos, no con matrices de objetos. Esto plantea la cuestión de cómo comparar matrices de objetos en función de una propiedad o columna específica.

Para abordar esto, PHP proporciona array_udiff, una función que permite la comparación de matrices de objetos especificando una función de comparación personalizada. Considere el siguiente ejemplo:

$first_array = array(
    (object) ['id' => '205', 'day_id' => '12'],
    (object) ['id' => '210', 'day_id' => '15']
);

$second_array = array(
    (object) ['id' => '205', 'day_id' => '12'],
    (object) ['id' => '215', 'day_id' => '18']
);

Para comparar estas matrices según la propiedad 'id', puede utilizar una función anónima de la siguiente manera:

$diff = array_udiff($first_array, $second_array,
    function ($obj_a, $obj_b) {
        return $obj_a->id - $obj_b->id;
    }
);

Esta función resta los valores de 'id' de los dos objetos para determinar la diferencia. El $diff resultante contendrá los objetos en la primera matriz que no tienen un valor 'id' coincidente en la segunda matriz.

En resumen, al emplear la función array_udiff y definir una función de comparación personalizada, los desarrolladores pueden compare matrices de objetos en función de propiedades o columnas específicas, lo que brinda flexibilidad en las tareas de análisis de datos.

Declaración de liberación Este artículo se reimprime en: 1729665436 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