En PHP, nous devons souvent faire face aux tableaux multidimensionnels, en particulier lors du filtrage des lignes spécifiques des tableaux. PHP fournit de nombreuses fonctions pratiques pour nous aider à effectuer ces opérations efficacement, parmi lesquelles Array_Column et Array_Intersect sont deux fonctions très couramment utilisées.
La fonction Array_Column peut être utilisée pour obtenir la valeur d'une colonne spécifiée dans un tableau multidimensionnel, tandis que la fonction Array_INTERSECT peut être utilisée pour trouver la partie d'un tableau qui se croit avec un autre tableau. En combinant ces deux fonctions, nous pouvons facilement filtrer les lignes contenant des valeurs spécifiques. Cet article utilisera un exemple simple pour montrer comment utiliser ces deux fonctions pour le filtrage.
Supposons que nous ayons un tableau multidimensionnel contenant plusieurs informations utilisateur, chaque information utilisateur est un tableau associatif. Nous devons filtrer toutes les informations de l'utilisateur avec l'adresse e-mail example@m66.net . Vous pouvez utiliser Array_Column pour obtenir toutes les adresses e-mail, puis utiliser Array_INTERSECT pour trouver des lignes contenant des adresses e-mail spécifiques.
<?php
// Données utilisateur
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net'],
['id' => 4, 'name' => 'David', 'email' => 'example@m66.net'],
['id' => 5, 'name' => 'Eve', 'email' => 'eve@m66.net'],
];
// Adresses e-mail spécifiques qui doivent être filtrées
$targetEmail = 'example@m66.net';
// utiliser array_column Obtenez toutes les adresses e-mail
$emails = array_column($users, 'email');
// utiliser array_intersect Trouvez la même ligne que la boîte aux lettres cible
$filteredUsers = array_filter($users, function ($user) use ($emails, $targetEmail) {
return in_array($targetEmail, $emails) && $user['email'] === $targetEmail;
});
// Résultats du filtre de sortie
print_r($filteredUsers);
?>
Array_Column : cette fonction est utilisée pour extraire la colonne spécifiée à partir d'un tableau multidimensionnel. Ici, nous utilisons Array_Column ($ les utilisateurs, «e-mail») pour extraire les adresses e-mail de tous les utilisateurs et les stocker dans le tableau $ des e-mails .
Array_INTERSECT : Cette fonction peut renvoyer l'intersection entre les tableaux. Dans cet exemple, nous n'utilisons pas Array_INTERSECT directement pour comparer les intersections Array, mais nous utilisons dans_array pour vérifier si l'adresse e-mail existe dans le tableau cible. Si une adresse e-mail correspondante est trouvée, nous retournons la ligne correspondante.
Array_Filter : utilisé pour filtrer les tableaux et filtrer les éléments qui répondent aux critères. Dans cet exemple, nous filtrons les lignes avec l'adresse e-mail 'example@m66.net' via une fonction de rappel personnalisée.
Lors de l'exécution du code ci-dessus, le tableau $ filtedUsers ne contiendra que des données utilisateur avec la boîte aux lettres 'example@m66.net' , et le résultat de sortie est le suivant: