Manuel PHP
Précédent |  | Suivant

# array_walk

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

array_walk -- Exécute une fonction sur chacun des éléments d'un tableau

## Description

bool array_walk ( array &array, callback funcname [, mixed userdata] )

Cette fonction retourne `TRUE` en cas de succès, `FALSE` en cas d'échec.

Exécute la fonction `funcname` définie par l'utilisateur sur chaque élément du tableau `array`. Typiquement, `funcname` prend deux paramètres. La valeur du paramètre `input` étant le premier et la clé/index, le second. Si le paramètre optionnel `userdata` est fourni, il sera passé comme troisième paramètre à la fonction définie par l'utilisateur `funcname`.

Si `function` requiert plus de paramètres que ceux donnés, une alerte E_WARNING sera générée à chaque fois que la fonction array_walk() appellera `funcname`. Ces alertes peuvent ne pas être affichées en utilisant l'opérateur d'erreur PHP @ lors de l'appel de la fonction array_walk() ou en utilisant error_reporting().

> Note : Si `funcname` doit travailler avec les véritables valeurs du tableau, spécifiez que le premier paramètre de `funcname` doit être passé par référence. Alors, les éléments seront directement modifiés dans le tableau.

> Note : Passer les clés et `userdata` à `funcname` a été ajouté en PHP 4.0.0

array_walk() n'est pas affecté par le pointeur interne du tableau `array`. array_walk() traversera le tableau en totalité sans se soucier de la position du pointeur.

Les utilisateurs ne peuvent pas modifier le tableau lui-même depuis la fonction de callback. Par exemple, Ajout/Effacement d'éléments, réinitialisation d'éléments, etc. Si le tableau sur lequel array_walk() est appliqué est changé, le comportement de la fonction est indéfini et non prévisible.

Exemple 1. Exemple avec array_walk()

`<?php; $fruits = array ("d"=>"citron", "a"=>"orange", "b"=>"banane", "c"=>"pomme"); function test_alter(&$item1, $key, $prefix) { $item1 = "$prefix: $item1"; } function test_print ($item2, $key) { echo "$key. $item2<br />\n"; } echo 'Avant... '."\n"; array_walk ($fruits, 'test_print'); array_walk ($fruits, 'test_alter', 'fruit'); echo '...et après :'."\n"; array_walk ($fruits, 'test_print'); ?>`

L'exemple ci-dessus va afficher :

`Avant... d. citron a. orange b. banane c. pomme ...et après : d. fruit: citron a. fruit: orange b. fruit: banane c. fruit: pomme`

Voir aussi array_walk_recursive(), create_function(), list(), foreach, each(), call_user_func_array(), array_map() et information à propos de callback type.

Précédent | Sommaire | Suivant
array_walk_recursive | Niveau supérieur | array