Dans le développement de PHP, les opérations de réseaux sont l'une des tâches très courantes. Surtout lors de l'extraction de données d'un champ spécifié à partir d'un tableau, nous pouvons rencontrer un certain nombre d'implémentations différentes. Cet article introduira plusieurs méthodes couramment utilisées pour extraire les champs de tableau et effectuera une comparaison et une analyse pour aider les développeurs à choisir la meilleure solution basée sur des scénarios spécifiques.
Array_Column () est une fonction très pratique en PHP pour extraire des colonnes (champs) spécifiées à partir de tableaux multidimensionnels.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = array_column($array, 'name');
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Scénario applicable : lorsqu'un tableau est un tableau associatif et que vous n'avez qu'à extraire l'un des champs, Array_Column () est une méthode très concise et efficace.
Limitation : Cette fonction ne s'applique qu'aux tableaux ou tableaux bidimensionnels avec des dimensions plus élevées.
array_map () peut appliquer une fonction de rappel à chaque élément d'un tableau, nous pouvons donc l'utiliser pour extraire la valeur du champ spécifié dans le tableau.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = array_map(function ($item) {
return $item['name'];
}, $array);
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Scénarios applicables : array_map () offre plus de flexibilité si vous avez besoin d'effectuer des opérations plus complexes sur des éléments de tableau, ou pas seulement d'extraire les champs.
Limitation : Lorsqu'un tableau est grand, l'utilisation de Array_Map () peut être légèrement moins efficace que Array_Column () .
Utilisez directement ForEach pour parcourir le tableau et extraire manuellement la valeur du champ spécifié. Cette méthode est plus flexible, mais le volume de code est relativement grand.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = [];
foreach ($array as $item) {
$names[] = $item['name'];
}
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Scénarios applicables : utilisez ForEach pour offrir une flexibilité maximale lorsque vous devez effectuer un traitement plus complexe ou que vous souhaitez effectuer des opérations supplémentaires sur des champs extraits.
Limites : Cette approche peut ajouter un volume de code supplémentaire par rapport à array_column () ou array_map () .
array_walk () est une autre fonction couramment utilisée pour traverser les tableaux, qui vous permet de traiter et de modifier chaque élément d'un tableau. Nous pouvons également l'utiliser pour extraire les champs spécifiés.
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 25],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Spike', 'age' => 30]
];
$names = [];
array_walk($array, function ($item) use (&$names) {
$names[] = $item['name'];
});
print_r($names);
Array
(
[0] => Tom
[1] => Jerry
[2] => Spike
)
Scénario applicable : lorsque vous souhaitez modifier le contenu du tableau d'origine, Array_walk () est un bon choix. Cependant, si vous extraire les champs, Array_Column () est plus concis et efficace.
Limitation : il n'est pas aussi intuitif que Array_Column () lorsqu'il est utilisé, en particulier dans les scénarios où seuls des champs sont nécessaires pour être extraits.
méthode | Simplicité | flexibilité | performance | Scénarios applicables |
---|---|---|---|---|
array_column () | haut | Faible | rapide | Extraire des champs simples, adaptés à l'extraction de colonnes de tableaux bidimensionnels ou de tableaux multidimensionnels |
array_map () | milieu | haut | moyen | Lorsque des opérations de traitement complexe ou multi-champs sont nécessaires |
foretter | Faible | haut | moyen | Lorsque le traitement complexe est terminé, vous devez utiliser manuellement chaque élément. |
array_walk () | Faible | haut | moyen | Lorsque vous modifiez le contenu du tableau ou nécessitant plus de contrôle |
Performances optimales : si vous extraire simplement un certain champ, Array_Column () est le meilleur choix car il est simple, direct et efficace.
Le plus flexible : lorsque les exigences deviennent complexes, array_map () ou foreach fournit un plus grand espace de fonctionnement et que les fonctions de rappel peuvent être personnalisées en fonction des exigences.
Lorsque la modification du tableau d'origine : array_walk () convient pour modifier les éléments du tableau, mais s'il extrait des champs, ce n'est pas le meilleur choix.
Il existe de nombreuses façons d'extraire les champs de tableau dans PHP, et chaque méthode a ses scénarios applicables. Dans le développement réel, le choix du bon outil peut vous aider à améliorer la lisibilité et l'efficacité de votre code. Grâce à la comparaison de cet article, je crois que vous pouvez choisir la meilleure méthode d'extraction en fonction de vos besoins réels.