Dans PHP, Array_Column () est une fonction très pratique qui peut extraire des données d'une colonne d'un tableau multidimensionnel. Cette fonction est particulièrement adaptée au traitement des tableaux contenant de grandes quantités de données, nous aidant à obtenir rapidement des informations de colonne spécifiques. Ensuite, nous explorerons en profondeur l'utilisation de la fonction Array_Column () , l'analyse des paramètres et certains scénarios d'application courants.
La fonction Array_Column () est utilisée pour extraire les données d'une colonne d'un tableau bidimensionnel, et est généralement utilisé pour extraire la valeur d'une clé spécifiée dans un tableau multidimensionnel. Par exemple, lorsque vous avez un tableau d'informations utilisateur, vous pouvez extraire les adresses e-mail ou les noms d'utilisateur de tous les utilisateurs.
array_column(array $input, mixed $column_key, mixed $index_key = null): array
$ Entrée : le tableau d'entrée multidimensionnel.
$ Column_key : La clé de la colonne à retourner (peut être l'index du tableau ou le nom de clé du tableau associatif).
$ index_key : facultatif, comme la colonne de l'index (peut être le nom de clé du tableau).
Supposons que vous ayez le tableau suivant de données utilisateur et que vous souhaitez simplement obtenir les adresses e-mail de tous les utilisateurs.
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
$emails = array_column($users, 'email');
print_r($emails);
Résultat de sortie:
Array
(
[0] => alice@example.com
[1] => bob@example.com
[2] => charlie@example.com
)
Parfois, nous voulons non seulement extraire une colonne dans le tableau, mais aussi pour définir cette colonne comme index du nouveau tableau. Par exemple, si vous souhaitez définir l'ID en tant qu'index, extraire les noms de tous les utilisateurs:
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
$names = array_column($users, 'name', 'id');
print_r($names);
Résultat de sortie:
Array
(
[1] => Alice
[2] => Bob
[3] => Charlie
)
Si vous ne souhaitez pas utiliser directement les noms de clés du tableau, mais utilisez plutôt un nom de clé personnalisé pour l'extraire, vous pouvez également l'implémenter via la fonction Array_Column () . Par exemple, extraire l'adresse e-mail de l'utilisateur et définir le nom sur index:
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
$emails = array_column($users, 'email', 'name');
print_r($emails);
Résultat de sortie:
Array
(
[Alice] => alice@example.com
[Bob] => bob@example.com
[Charlie] => charlie@example.com
)
Parfois, nous devons filtrer les données en même temps lors de l'extraction d'une certaine colonne. Bien que la fonction Array_Column () ne prenne pas en charge le filtrage, vous pouvez le faire en combinaison avec d'autres fonctions.
Par exemple, supposons que vous ayez un tableau de commande qui souhaite extraire tous les ID de commande avec un montant supérieur à 100:
$orders = [
['order_id' => 1, 'amount' => 50],
['order_id' => 2, 'amount' => 150],
['order_id' => 3, 'amount' => 200],
['order_id' => 4, 'amount' => 75]
];
$filtered_orders = array_filter($orders, function($order) {
return $order['amount'] > 100;
});
$order_ids = array_column($filtered_orders, 'order_id');
print_r($order_ids);
Résultat de sortie:
Array
(
[1] => 2
[2] => 3
)
Array_Column () peut également être utilisé en combinaison avec des fonctions telles que array_map () , afin d'atteindre le traitement des données en même temps lors de l'extraction des données de colonne.
Problème d'indexation : Array_Column () ne renvoiera que la valeur de la colonne spécifiée et ne conservera pas les clés du tableau d'origine. Si vous devez conserver l'index, vous pouvez envisager un traitement supplémentaire.
Problèmes de performances : Array_Column () est une fonction relativement efficace, mais les performances sont toujours une préoccupation lorsqu'ils traitent de très grands tableaux. Si vous devez fonctionner sur d'énormes ensembles de données, vous pouvez considérer d'autres méthodes plus optimisées.
La fonction Array_Column () est un outil très puissant et est souvent utilisée en PHP pour extraire les données de colonnes spécifiques à partir de tableaux multidimensionnels. En utilisant de manière flexible ses paramètres, vous pouvez facilement extraire les données de colonne du tableau et personnaliser les conditions d'index et de filtrage. Qu'il s'agisse de traiter les données des utilisateurs, les données de commande ou d'autres formes de tableaux complexes, Array_Column () peut vous aider à simplifier considérablement votre code et à améliorer l'efficacité.