Fonction array_walk_recursive

La fonction array_walk_recursive applique une fonction donnée à tous les éléments d'un tableau multidimensionnel. Elle retourne true en cas de succès ou false en cas d'erreur. Le premier paramètre de la fonction est le tableau, et le second est le callback.

Deux paramètres sont passés au callback. Le premier paramètre est la valeur de l'élément du tableau, et le second est la clé.

Le tableau passé à la fonction n'est pas modifié lui-même. Mais cela peut être réalisé en passant l'élément par référence.

Syntaxe

phparray_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

Exemple

Parcourons un tableau multidimensionnel et affichons ses clés et éléments :

php<?php
  $arr = [
    'a' => 1,
    'b' => 2,
    'c' => [
      'd' => 3,
      'e' => 4,
    ],
  ];
  
  array_walk_recursive($arr, function($elem, $key) {
    echo $key . ' ' . $elem . '<br>';
  });
?>

Résultat de l'exécution du code :

php'a 1'
'b 2'
'd 3'
'e 4'

Exemple

Parcourons un tableau et mettons ses éléments au carré :

php<?php
  $arr = [
    'a' => 1,
    'b' => 2,
    'c' => [
      'd' => 3,
      'e' => 4,
    ],
  ];
  
  array_walk_recursive($arr, function(&$elem, $key) {
    $elem = $elem ** 2;
  });
  
  var_dump($arr);
?>

Résultat de l'exécution du code :

php[
  'a' => 1,
  'b' => 4,
  'c' => [
    'd' => 9,
    'e' => 16,
  ],
];

Voir aussi

  • la fonction array_walk,
    qui appelle une fonction pour les éléments d'un tableau
  • la fonction array_map,
    qui applique une fonction aux éléments d'un tableau
  • la fonction array_filter,
    qui filtre un tableau
  • la fonction array_reduce,
    qui réduit un tableau