Maison >développement back-end >tutoriel php >Comment comparer des tableaux d'objets par valeurs de colonne à l'aide de fonctions de tableau ?

Comment comparer des tableaux d'objets par valeurs de colonne à l'aide de fonctions de tableau ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-23 15:17:02655parcourir

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn