Position actuelle: Accueil> Derniers articles> Comment extraire efficacement plusieurs valeurs de colonne avec Array_Column et Array_Map

Comment extraire efficacement plusieurs valeurs de colonne avec Array_Column et Array_Map

M66 2025-04-28

En PHP, le traitement et l'extraction des données de tableau sont une tâche très courante. Fonctions de manipulation du tableau Array_Column et Array_Map offrent des moyens efficaces d'extraire et de manipuler plusieurs colonnes dans un tableau, en particulier lorsqu'ils traitent avec des tableaux bidimensionnels. Cet article présentera comment utiliser ces deux fonctions pour extraire efficacement plusieurs colonnes de données dans un tableau et afficher des exemples de code connexes.

1. Utilisez Array_Column pour extraire les données de colonne unique

Array_Column est une fonction utilisée pour extraire les données d'une colonne spécifiée à partir d'un tableau bidimensionnel. Il extrait la valeur correspondant à la clé spécifiée de chaque élément du tableau (généralement un tableau associatif) et renvoie un nouveau tableau.

grammaire:

 array_column(array $array, $column_key, $index_key = null)
  • $ Array : le tableau multidimensionnel d'entrée.

  • $ Column_Key : Spécifie la colonne à extraire.

  • $ index_key : paramètre facultatif pour spécifier une valeur de clé comme index du nouveau tableau.

Exemple:

Supposons que nous ayons une gamme d'informations utilisateur, chaque utilisateur contient l'ID , le nom et l'e-mail .

 $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']
];

// Extraire tout "name" Liste
$names = array_column($users, 'name');

print_r($names);

Sortir:

 Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

Grâce à Array_Column , nous extraissons les données de la colonne du nom .

2. Utilisez Array_Map pour extraire plusieurs colonnes de données

Array_map peut être utilisé pour appliquer une fonction de rappel à chaque élément d'un tableau pour générer un nouveau tableau. Nous pouvons utiliser cette fonctionnalité pour extraire les données de plusieurs colonnes.

grammaire:

 array_map(callable $callback, array $array)
  • $ rappel : une fonction de rappel qui traite chaque élément du tableau.

  • $ tableau : le tableau d'entrée.

Exemple:

Supposons que nous voulons maintenant extraire non seulement la colonne de nom , mais aussi la colonne de messagerie , nous pouvons le faire en utilisant array_map en conjonction avec la fonction de rappel.

 $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']
];

// extrait "name" et "email" 两Liste
$namesAndEmails = array_map(function($user) {
    return [$user['name'], $user['email']];
}, $users);

print_r($namesAndEmails);

Sortir:

 Array
(
    [0] => Array
        (
            [0] => Alice
            [1] => alice@m66.net
        )
    [1] => Array
        (
            [0] => Bob
            [1] => bob@m66.net
        )
    [2] => Array
        (
            [0] => Charlie
            [1] => charlie@m66.net
        )
)

Dans cet exemple, Array_Map est utilisé pour extraire le nom et le courrier électronique des deux champs depuis le tableau de chaque utilisateur, générant un nouveau tableau bidimensionnel.

3. Utilisez Array_Column et Array_Map pour extraire plusieurs colonnes de données

Parfois, nous voulons extraire des données de plusieurs colonnes et traiter ces données. Cet objectif peut être atteint efficacement en combinant array_column et array_map . Par exemple, nous pouvons extraire les colonnes de nom et de messagerie de tous les utilisateurs et remplacer le nom de domaine m66.net dans l'e-mail par exemple.com .

 $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']
];

// utiliser array_map extrait name et email,Et modifier email
$namesAndEmails = array_map(function($user) {
    $user['email'] = str_replace('@m66.net', '@example.com', $user['email']);
    return [$user['name'], $user['email']];
}, $users);

print_r($namesAndEmails);

Sortir:

 Array
(
    [0] => Array
        (
            [0] => Alice
            [1] => alice@example.com
        )
    [1] => Array
        (
            [0] => Bob
            [1] => bob@example.com
        )
    [2] => Array
        (
            [0] => Charlie
            [1] => charlie@example.com
        )
)

Dans cet exemple, nous extraissons non seulement le nom et l'e-mail de l'utilisateur, mais modifions également le nom de domaine de messagerie de m66.net à example.com via STR_REPLACE .

Résumer

  • Array_Column est un outil très efficace pour extraire des données de colonne unique à partir de tableaux multidimensionnels et convient à une extraction de colonne simple.

  • Array_map fournit des fonctionnalités plus puissantes qui peuvent être utilisées pour effectuer un traitement complexe de chaque élément, extrait ainsi les données de plusieurs colonnes.

  • L'utilisation de ces deux fonctions peut extraire et traiter efficacement les données multi-colonnes dans des tableaux multidimensionnels, éviter d'utiliser des boucles FOREACH imbriquées et améliorer la lisibilité au code et l'efficacité d'exécution.

En utilisant ces deux fonctions raisonnablement, vous pouvez considérablement simplifier la complexité du traitement des données de tableau et améliorer l'efficacité d'exécution du code.