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.
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