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

Linda Hamilton
Libérer: 2024-10-23 15:17:02
original
648 Les gens l'ont consulté

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']
);
Copier après la connexion

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;
    }
);
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal