Maison  >  Article  >  développement back-end  >  En quoi `array_map`, `array_walk` et `array_filter` diffèrent-ils dans leurs techniques de manipulation de tableaux ?

En quoi `array_map`, `array_walk` et `array_filter` diffèrent-ils dans leurs techniques de manipulation de tableaux ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 04:22:03853parcourir

 How Do `array_map`, `array_walk`, and `array_filter` Differ in Their Array Manipulation Techniques?

Rôles distincts : array_map, array_walk et array_filter

Alors que array_map, array_walk et array_filter impliquent tous de transmettre une fonction de rappel pour opérer sur un tableau, ils diffèrent par leur noyau fonctionnalité.

array_map excelle dans la transformation des éléments du tableau. Il mappe la sortie du rappel sur un nouveau tableau de la même longueur que le plus grand tableau d'entrée. Contrairement à array_walk, array_map conserve les valeurs du tableau d'origine inchangées.

array_walk se spécialise dans la modification des éléments du tableau sur place. Il parcourt le tableau, appelant le rappel pour chaque élément et permettant l'accès par clé. array_walk modifie directement le tableau d'entrée, une fonctionnalité qui manque à array_map.

array_filter conserve sélectivement les éléments en fonction de la vérification de la véracité du rappel. Il élague le tableau d'entrée, en créant un nouveau qui contient uniquement les éléments qui passent le filtre. array_filter préserve les clés, contrairement à array_map, mais contrairement à array_walk, il ne modifie pas le tableau d'origine.

Exemple :

<code class="php">$array = [2.4, 2.6, 3.5];

$mapResult = array_map('floor', $array); // Stays the same
print_r($mapResult); // [2, 2, 3]

array_walk($array, function (&amp;$v, $k) { $v = floor($v); }); // Alters the array
print_r($array);  // [2, 2, 3]

$filterResult = array_filter($array, function ($v) { return $v > 2.5; }); // Preserves keys
print_r($filterResult); // [2.6, 3.5]</code>

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