PHP est un langage de programmation puissant qui fournit de nombreuses fonctions intégrées lors du traitement des tableaux. Parmi eux, Array_Column et Array_Map sont deux fonctions couramment utilisées. Bien qu'ils soient tous deux utilisés pour les opérations de tableau, leurs scénarios et fonctions d'utilisation sont très différents. Aujourd'hui, nous explorerons les différences entre les deux fonctions et dans quelles circonstances devons-nous choisir d'en utiliser l'une.
La fonction Array_Column est utilisée pour extraire la valeur d'une seule colonne à partir d'un tableau multidimensionnel. Cette fonction est couramment utilisée dans les scénarios où les résultats de la requête de la base de données (généralement des tableaux bidimensionnels) sont traités, ou une certaine colonne de données doit être obtenue à partir d'un tableau multidimensionnel.
Définition de la fonction:
array_column(array $input, $column_key, $index_key = null): array
Description du paramètre:
$ Entrée : le tableau d'entrée multidimensionnel.
$ Column_Key : le nom de clé de la colonne que vous souhaitez extraire (peut être une chaîne ou un entier).
$ index_key (facultatif): Si ce paramètre est fourni, le tableau renvoyé utilisera cette clé comme index.
exemple:
Supposons que nous ayons un tableau multidimensionnel contenant des informations utilisateur, et que nous voulons extraire les adresses e-mail de tous les utilisateurs:
$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'],
];
$emails = array_column($users, 'email');
print_r($emails);
Sortir:
Array
(
[0] => alice@m66.net
[1] => bob@m66.net
[2] => charlie@m66.net
)
Dans cet exemple, Array_Column extrait les adresses e-mail de tous les utilisateurs et renvoie un tableau unidimensionnel contenant toutes les adresses e-mail.
La fonction Array_Map est utilisée pour appliquer une fonction de rappel à chaque élément du tableau. Il vous permet de parcourir le tableau et de traiter chaque élément, renvoyant le nouveau tableau traité. Les utilisations courantes de l'array_map incluent la conversion des éléments du tableau, des chaînes de traitement ou des nombres, etc.
Définition de la fonction:
array_map(callable $callback, array $array, array ...$arrays): array
Description du paramètre:
$ rappel : une fonction de rappel qui gère chaque élément dans un tableau.
$ Array : le tableau à traiter.
... $ tableaux (facultatif): plusieurs tableaux peuvent être transmis et la fonction de rappel sera appliquée aux éléments correspondants de ces tableaux à tour de rôle.
exemple:
Supposons que nous ayons un tableau contenant des adresses e-mail utilisateur et que nous voulons convertir toutes les adresses e-mail en lettres majuscules:
$emails = ['alice@m66.net', 'bob@m66.net', 'charlie@m66.net'];
$uppercasedEmails = array_map('strtoupper', $emails);
print_r($uppercasedEmails);
Sortir:
Array
(
[0] => ALICE@M66.NET
[1] => BOB@M66.NET
[2] => CHARLIE@M66.NET
)
Dans cet exemple, Array_Map convertit chaque adresse e-mail en lettres majuscules.
caractéristiques | Array_Column | array_map |
---|---|---|
effet | Extraire une colonne dans un tableau multidimensionnel | Appliquer une fonction de rappel à chaque élément du tableau |
Entrez les paramètres | Un tableau multidimensionnel et les noms clés des colonnes à extraire | Une fonction de tableau et de rappel (peut également passer plusieurs tableaux) |
Sortir | Renvoie un tableau contenant les colonnes spécifiées | Renvoie un tableau contenant des éléments traités |
utiliser | Utilisé pour extraire les données d'une certaine colonne, souvent utilisée pour traiter les résultats de la requête de la base de données | Utilisé pour effectuer une sorte de conversion ou de traitement sur chaque élément d'un tableau |
Extraire les données des colonnes : si vous avez un tableau multidimensionnel et que vous vous souciez uniquement de l'une des colonnes, l'utilisation de Array_Column est le choix le plus approprié.
Résultats de la requête de la base de données : Lorsque vous obtenez un tableau multidimensionnel à partir de la base de données (par exemple, chaque enregistrement est un sous-tableau), vous pouvez utiliser Array_Column pour extraire un champ dans tous les enregistrements.
Conversion du tableau : Array_map est très utile lorsque vous devez appliquer une certaine conversion (telle que la mise en forme, le calcul, le filtrage, etc.) à chaque élément du tableau.
Traitement par lots des éléments du tableau : Array_map peut être mis en œuvre rapidement lorsque vous devez effectuer certaines opérations sur le tableau (telles que la conversion de chaînes, les calculs mathématiques, etc.) et les opérations sont pour chaque élément du tableau.
Si vous avez juste besoin d'extraire des données d'une colonne d'un tableau multidimensionnel, Array_Column est le meilleur choix, qui peut obtenir et renvoyer efficacement toutes les valeurs de cette colonne.
Si vous devez appliquer une opération ou une transformation à chaque élément d'un tableau, l'utilisation de Array_map est plus appropriée, ce qui vous donne la flexibilité de traiter chaque élément et de renvoyer le tableau traité.
Le choix de la bonne fonction peut non seulement améliorer la lisibilité du code, mais également obtenir de meilleures performances dans l'efficacité de l'exécution. J'espère que grâce à cet article, vous pouvez avoir une compréhension plus claire des différences entre ces deux fonctions et leurs scénarios d'application.