Funciones de Arrays
PHP Manual

array_walk

(PHP 4, PHP 5)

array_walkAplicar una función de usuario a cada miembro de un array

Descripción

bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )

Aplica la función definida por el usuario dada por funcname a cada elemento del array dado por array.

array_walk() no le afecta el puntero de arrays interno de array. array_walk() recorrerá el array completo sin tener en cuenta la posición del puntero.

Parámetros

array

El array de entrada.

funcname

Normalmente, funcname asume dos parámetros. El primero, los valores de los parámetros de array, y el segundo la clave/índice.

Nota:

Si funcname necesita trabajar con los valores reales del array, especifique el primer parámetro de funcname como una referencia. Así, cualquier cambio hecho a esos elementos serán hechos al mismo array original.

Nota:

Muchas funciones internas (por ejemplo strtolower()) lanzarán una advertencia si se pasan más argumentos de los esperados y no so usables directamente como funcname.

Sólo se pueden cambiar potencialmente los valores del parámetro array; no se puede alterar su estructura, esto es, el programador no puede añadir, destruir o reordenar elementos. Si la llamada de retorno no respeta este requisito, el comportamiento de esta función será indefinido e impredecible.

userdata

Si se proporciona el parámetro opcional userdata, éste será pasado como el tercer parámetro de la función de llamada de retorno dada por funcname.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Errores/Excepciones

Si la función funcname requiere más parámetros que los dados, se generará un error de nivel E_WARNING cada vez que array_walk() llame a funcname. Estas advertencias pueden ser suprimidas añadiendo al inicio el operador de error de PHP @ en la llamada a array_walk(), o usando error_reporting().

Ejemplos

Ejemplo #1 Ejemplo de array_walk()

<?php
$frutas 
= array("d" => "limón""a" => "naranja""b" => "banana""c" => "manzana");

function 
test_alter(&$elemento1$clave$prefijo)
{
    
$elemento1 "$prefijo$elemento1";
}

function 
test_print($elemento2$clave)
{
    echo 
"$clave$elemento2<br />\n";
}

echo 
"Antes ...:\n";
array_walk($frutas'test_print');

array_walk($frutas'test_alter''fruta');
echo 
"... y después:\n";

array_walk($frutas'test_print');
?>

El resultado del ejemplo sería:

Antes ...:
d. limón
a. naranja
b. banana
c. manzana
... y después:
d. fruta: limón
a. fruta: naranja
b. fruta: banana
c. fruta: manzana

Ver también


Funciones de Arrays
PHP Manual