Maison  >  Article  >  développement back-end  >  Quand utiliser array_map, array_walk et array_filter en PHP ?

Quand utiliser array_map, array_walk et array_filter en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 09:52:02867parcourir

 When to Use array_map, array_walk, and array_filter in PHP?

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>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn