Expliquer les différences entre array_map, array_walk et array_filter
Les fonctions de tableau en PHP offrent des moyens pratiques de manipuler des tableaux. Parmi ceux-ci, array_map, array_walk et array_filter sont couramment utilisés. Bien qu'ils partagent des similitudes, il existe des distinctions clés dans leur comportement.
Aperçu des fonctionnalités
-
array_map : Applique une fonction de rappel à chacun élément du ou des tableaux et renvoie un nouveau tableau contenant les résultats.
-
array_walk : Applique une fonction de rappel à chaque élément du tableau et met à jour le tableau d'origine en place.
-
array_filter : Supprime les éléments du tableau en fonction d'une fonction de rappel, renvoyant un nouveau tableau contenant uniquement les éléments qui satisfont à la condition.
Différences clés
-
Modification du tableau : array_walk modifie le tableau d'origine, contrairement à array_map.
-
Accès par clé : array_walk permet l'accès aux clés du tableau dans la fonction de rappel, contrairement à array_map.
-
Valeurs de retour : array_map renvoie un nouveau tableau, tandis que array_walk renvoie true. array_filter renvoie également un nouveau tableau, mais ne contient que les éléments filtrés.
-
Itération : array_map peut parcourir plusieurs tableaux simultanément, tandis que array_walk n'itère que sur un seul tableau.
- Transmission de données arbitraire : array_walk peut accepter un paramètre supplémentaire à transmettre au rappel, une option introduite dans PHP 5.3.
-
Longueur du tableau retourné : Le tableau résultant de array_map correspond à la longueur du plus grand tableau d'entrée, tandis que le tableau de array_walk ne change pas de longueur. array_filter renvoie un tableau qui correspond à la longueur des éléments filtrés.
Exemples illustratifs
<code class="php">$a = [2.4, 2.6, 3.5];
// array_map
$b = array_map('floor', $a); // $a remains unchanged
print_r($b); // Output: [2, 2, 3]
// array_walk
array_walk($a, 'floor'); // Modifies $a
print_r($a); // Output: [2, 2, 3]
// array_filter
$c = array_filter($a, fn($v) => $v > 2.5); // Filter elements
print_r($c); // Output: [2.6, 3.5]</code>
Copier après la connexion
En conclusion, array_map, array_walk et array_filter ont chacun rôles spécifiques dans la manipulation des tableaux. Comprendre leurs différences permet aux développeurs de choisir la fonction la plus appropriée à leur tâche.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!