Maison  >  Article  >  développement back-end  >  Comment conserver les lignes d'un tableau avec des valeurs de colonne correspondantes à partir d'un tableau plat ?

Comment conserver les lignes d'un tableau avec des valeurs de colonne correspondantes à partir d'un tableau plat ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 04:17:02436parcourir

How to Retain Array Rows with Matching Column Values from a Flat Array?

Conserver les lignes du tableau avec les valeurs de colonne correspondantes à partir d'un tableau plat séparé

Étant donné un tableau $arr1 avec plusieurs colonnes et un deuxième tableau plat $ arr2 contenant une liste de valeurs de colonne spécifiques, l'objectif est de filtrer $arr1 et d'extraire uniquement les lignes où les valeurs d'une colonne particulière correspondent aux éléments de $arr2.

Solution :

Pour effectuer efficacement cette tâche, array_uintersect() peut être utilisé. Cette fonction native utilise un algorithme de tri lors de la comparaison pour améliorer la vitesse d'exécution. Il faut deux tableaux et une fonction de rappel personnalisée pour déterminer la logique de comparaison.

Dans le code fourni, la fonction de rappel exploite la déstructuration du tableau pour accéder à la colonne id de chaque élément de $arr1 et $arr2. Si la colonne id n'existe pas, la valeur par défaut du paramètre est la valeur.

La comparaison vérifie si les valeurs id des deux tableaux sont égales, en garantissant que les lignes de $arr1 correspondent aux valeurs de $arr2. Le résultat est un nouveau tableau contenant uniquement les lignes souhaitées de $arr1.

Cette approche offre des performances supérieures aux appels itératifs de in_array() grâce à des appels de fonction minimisés et un temps d'exécution optimisé.

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