(PHP 3 >= 3.0.3, PHP 4, PHP 5)
array_walk --
Aplica una función del usuario a cada elemento de una matriz.
Descripción
int
array_walk ( array &matriz, string func [, mixed datosvarios] )
Devuelve TRUE si todo se
llevó a cabo correctamente, FALSE en caso
de fallo.
Aplica la función llamada func a cada elemento de
la matriz. La función
func recibirá el valor de la matriz como primer
parámetro y la clave como segundo. Si se proporciona el
parámetro datosvarios será pasado como
tercer parámetro a la función de usuario.
Si func necesita más de dos o 3 argumentos,
dependiendo de datosvarios, se generará un
aviso cada vez que array_walk() llama a
func. Estos avisos pueden suprimirse si
se pone
@ antes de la
llamada a array_walk(),
o usando la función error_reporting().
Nota:
Si func precisa trabajar con los valores
reales de la matriz, especifique que el valor del primer parámetro
de func debe pasarse por referencia. Desde ese
instante, los cambios realizados sobre dichos elementos también serán
realizados en la propia matriz.
Nota:
El pasar la clave y los datos de usuario a func
fue una caracterÃstica añadida en PHP 4.0.0
array_walk() no es afectado por el apuntador interno
del parámetro matriz.
array_walk() avanzará por toda la matriz sin
importar la posición del apuntador. Para reinicializar el apuntador,
use reset(). en PHP 3, array_walk()
reinicializa el apuntador.
No se debe cambiar la matriz desde la llamada a la función, ej.
agregar/borrar elementos, vaciar elementos, etc. si la matriz que está
siendo usada por array_walk() cambia, el comportamiento
de esta función será indefinido e impredecible.
Ejemplo 1. Ejemplo de array_walk()
<?php $frutas = array ("d"=>"limon", "a"=>"naranja", "b"=>"platano", "c"=>"manzana");
function test_alterar ($item1, $clave, $prefix) { $item1 = "$prefix: $item1"; }
function test_ver ($item2, $clave) { echo "$clave. $item2<br />\n"; }
echo "Antes...:\n"; array_walk ($frutas, 'test_ver');
array_walk ($frutas, 'test_alterar', 'fruta'); echo "...y despues:\n";
array_walk ($frutas, 'test_ver'); ?>
|
El resultado del ejemplo seria:
Antes...: d. limon a. naranja b. platano c. manzana ...y despues: d. fruta: limon a. fruta: naranja b. fruta: platano c. fruta: manzana
|
|
Vea también array_walk_recursive(),
create_function(),
list(),
foreach,
each(),
call_user_func_array(),
array_map(),
information about the callback type.