Maison >développement back-end >tutoriel php >Comment comparer des objets dans des tableaux en fonction des valeurs de propriété ?
Comparer des objets dans des tableaux en fonction des valeurs de propriété
Déterminer les différences entre deux tableaux d'objets peut être un défi. Bien que des fonctions telles que array_diff et array_udiff existent pour les tableaux standards, les objets nécessitent une approche personnalisée.
Pour comparer des objets en fonction d'une propriété spécifique, suivez ces étapes :
Par exemple, considérons les tableaux d'objets suivants :
array(4) { [0]=> object(stdClass)#32 (9) { ["id"]=> string(3) "205" ["day_id"]=> string(2) "12" } }
Pour trouver la différence entre eux en fonction sur la propriété id, définissez une fonction de comparaison comme celle-ci :
function compare_objects($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; }
Ensuite, utilisez array_udiff pour comparer les tableaux :
$diff = array_udiff($first_array, $second_array, 'compare_objects');
Alternativement, si vous utilisez PHP >= 5.3, vous peut utiliser une fonction anonyme :
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
Cette approche vous permet de comparer efficacement des objets dans des tableaux en fonction des valeurs de propriété souhaitées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!