Dans le domaine de la programmation PHP, les fonctions array_diff et array_udiff fournissent des moyens de déterminer les différences entre deux tableaux. Cependant, lorsqu'il s'agit de tableaux d'objets, une approche personnalisée est nécessaire.
Un tableau d'objets, tel que celui illustré :
array(4) {
[0]=>
object(stdClass)#32 (9) {
["id"]=>
string(3) "205"
["day_id"]=>
string(2) "12"
}
}
pose un défi unique, surtout si l'on souhaite déterminer la différence en fonction des valeurs d'une colonne spécifique, comme "id" dans l'exemple.
Pour résoudre ce problème, la fonction array_udiff vient à notre aide. Il prend un troisième paramètre, qui est une fonction définie par l'utilisateur chargée de comparer les objets. En créant une fonction de comparaison appropriée, nous pouvons demander à array_udiff d'effectuer l'opération souhaitée.
Voici un exemple de la façon d'y parvenir :
function compare_objects($obj_a, $obj_b) {
return $obj_a->id - $obj_b->id;
}
$diff = array_udiff($first_array, $second_array, 'compare_objects');
Dans PHP 5.3, des fonctions anonymes peuvent être utilisées au lieu de déclarer une fonction distincte :
$diff = array_udiff($first_array, $second_array,
function ($obj_a, $obj_b) {
return $obj_a->id - $obj_b->id;
}
);
Grâce à ces techniques, vous possédez désormais la possibilité de déterminer efficacement la différence entre des tableaux d'objets en comparant les valeurs de n'importe quelle colonne ou propriété souhaitée.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3