Maison > développement back-end > tutoriel php > Comment rechercher des lignes de tableau avec des valeurs de colonne dans un tableau plat à l'aide des fonctions de tableau ?

Comment rechercher des lignes de tableau avec des valeurs de colonne dans un tableau plat à l'aide des fonctions de tableau ?

DDD
Libérer: 2024-10-23 17:59:02
original
1106 Les gens l'ont consulté

How to Find Array Rows with Column Values in a Flat Array Using Array Functions?

Recherche de lignes de tableau avec des valeurs de colonne dans un tableau plat

Dans ce scénario, vous recevez deux tableaux : un tableau original, $arr1 , avec plusieurs colonnes et un tableau secondaire, $arr2, contenant une liste de valeurs d'ID uniques. L'objectif est d'affiner $arr1 en sélectionnant uniquement les lignes qui contiennent une valeur d'ID trouvée dans $arr2.

Une solution très efficace à ce problème réside dans l'utilisation de la fonction array_uintersect(). Cette fonction utilise un rappel personnalisé pour comparer les éléments des deux tableaux d'entrée. Dans ce rappel personnalisé, nous accédons aux valeurs de la colonne « id ». Si cette colonne est absente, nous revenons à la valeur du paramètre.

array_uintersect() exploite la technique de tri lors de l'évaluation pour optimiser le temps d'exécution. En comparant les valeurs de colonne et les valeurs d'ID, il identifie les lignes de $arr1 qui ont des ID trouvés dans $arr2. Le tableau résultant comprendra uniquement les lignes sélectionnées répondant à cette condition.

Pour votre référence, vous trouverez ci-dessous le code qui implémente cette solution :

var_export(
    array_uintersect(
        $arr1,
        $arr2,
        fn($a, $b) =>
            ($a['id'] ?? $a)
            <=>
            ($b['id'] ?? $b)
    )
);
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal