Maison > développement back-end > tutoriel php > Comment filtrer les lignes d'un tableau en fonction de la valeur de colonne correspondant à des valeurs spécifiques ?

Comment filtrer les lignes d'un tableau en fonction de la valeur de colonne correspondant à des valeurs spécifiques ?

Linda Hamilton
Libérer: 2024-10-23 18:57:31
original
953 Les gens l'ont consulté

How to Filter Array Rows Based on Column Value Matching Specific Values?

Sous-ensemble de lignes basé sur l'inclusion de valeurs de colonnes

Considérons un tableau, $arr1, avec plusieurs colonnes et un deuxième tableau plat, $arr2, contenant des valeurs d’identification spécifiques. L'objectif est de filtrer $arr1 pour conserver uniquement les lignes où une valeur de colonne correspond à l'une des valeurs de $arr2.

Les tentatives précédentes utilisant des fonctions de filtre ou array_search se sont révélées infructueuses. Une solution pratique consiste à utiliser la fonction PHP native, array_uintersect().

Cette fonction utilise une fonction de rappel anonyme qui évalue la colonne id (ou revient à la valeur du paramètre si elle n'est pas présente) dans les deux tableaux d'entrée. La comparaison vérifie l'égalité entre les valeurs.

Dans le rappel, l'opérateur => est utilisé pour capturer les variables du tableau d'entrée $a et $b, et l'opérateur ternaire ? : attribue une valeur de retour non nulle.

Sous le capot, array_uintersect effectue le tri pendant le processus d'évaluation, optimisant les performances et exécutant nettement plus rapide que les appels itératifs in_array().

Le code ci-dessous montre la solution :

<code class="php">var_export(
    array_uintersect(
        $arr1,
        $arr2,
        fn($a, $b) =>
            ($a['id'] ?? $a)
            <=
            ($b['id'] ?? $b)
    )
);</code>
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
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