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 ?
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) ) );
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!