Quelle est la différence entre array_map, array_walk et array_filter en PHP ?
Bonjour à tous ! Je viens de commencer à apprendre PHP et je n'arrive pas à comprendre la différence entre les fonctions array_map, array_walk et array_filter. Apparemment, elles prennent toutes un callback et l'appliquent à un tableau. Mais quand j'essaie de les utiliser dans du code réel, les résultats sont différents ou je ne comprends tout simplement pas laquelle choisir.
Par exemple, j'ai un tableau de nombres :
```php
$numbers = [1, 2, 3, 4, 5];
```
Je veux :
1. Multiplier chaque nombre par 2.
2. Afficher chaque nombre avec le préfixe "Number: ".
3. Filtrer uniquement les nombres pairs.
J'ai essayé array_map :
```php
$doubled = array_map(function($n) { return $n * 2; }, $numbers);
```
Ça semble fonctionner, ça retourne un nouveau tableau. Mais array_walk peut aussi être utilisé ? Ou array_filter ?
J'ai essayé array_walk :
```php
array_walk($numbers, function(&$n) { $n *= 2; });
```
Maintenant $numbers a changé. Et si je veux juste afficher, sans modifier ?
Et array_filter :
```php
$even = array_filter($numbers, function($n) { return $n % 2 == 0; });
```
Là, ça semble...