array_walkAplicar una función de usuario a cada miembro de un array
&reftitle.description;
boolarray_walkarrayarraycallbackfuncnamemixeduserdata
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.
&reftitle.parameters;
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.
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.
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.
&reftitle.returnvalues;
&return.success;
&reftitle.errors;
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.
&reftitle.examples;
Ejemplo de array_walk
"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 \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');
?>
]]>
&example.outputs;
&reftitle.seealso;
array_walk_recursiveiterator_applycreate_functionlisteachcall_user_func_arrayarray_map&seealso.callback;&foreach;