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 membres 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.

array_walk() exécute la fonction funcname 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ètres à la fonction définie par l'utilisateur funcname.

Si function requière plus de paramètres que ceux donnés, une alerte E_WARNING sera générée à chaque appel de la fonction array_walk() à la fonction 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 function 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.

array_walk() n'est pas affecté par le pointeur interne du tableau array. array_walk() trversera le tableau en totalité par rapport à la position du pointeur. Pour réinitialiser ce pointeur, utilisez la fonction reset(). En PHP 3, array_walk() réinitialise le pointeur.

Les utilisateurs ne peuvent pas modifier le tableau lui-même depuis la fonction de callback. e.g. 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() et array_map().

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