"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-07
Parcourir:937

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 les valeurs 'id' 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 employant 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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729665436. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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