Comparaison de tableaux d'objets par valeurs de colonne à l'aide de fonctions de tableau
De nombreux langages de programmation offrent des fonctions intégrées pour comparer des tableaux. Cependant, ces fonctions fonctionnent généralement avec des types de données et des tableaux primitifs, et non avec des tableaux d'objets. Cela soulève la question de savoir comment comparer des tableaux d'objets en fonction d'une propriété ou d'une colonne spécifique.
Pour résoudre ce problème, PHP fournit array_udiff, une fonction qui permet la comparaison de tableaux d'objets en spécifiant une fonction de comparaison personnalisée. Prenons l'exemple suivant :
$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'] );
Pour comparer ces tableaux en fonction de la propriété 'id', vous pouvez utiliser une fonction anonyme comme suit :
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
Cette fonction soustrait l''id ' valeurs des deux objets pour déterminer la différence. Le $diff résultant contiendra les objets du premier tableau qui n'ont pas de valeur 'id' correspondante dans le deuxième tableau.
En résumé, en utilisant la fonction array_udiff et en définissant une fonction de comparaison personnalisée, les développeurs peuvent comparez des tableaux d'objets en fonction de propriétés ou de colonnes spécifiques, offrant ainsi une flexibilité dans les tâches d'analyse des donné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!