array_walkAplicar una función proporcionada por el usuario a cada miembro de un array
&reftitle.description;
boolarray_walkarrayarraycallablecallbackmixeduserdata&null;
Aplica la función definida por el usuario dada por callback 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.
callback
Normalmente, callback asume dos parámetros.
El primero, los valores de los parámetros de array, y el segundo
la clave/índice.
Si callback necesita trabajar con los
valores reales del array, especifique el primer parámetro de
callback 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 son utilizables directamente como
callback.
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 dada por
callback.
&reftitle.returnvalues;
Devuelve &true;.
&reftitle.errors;
A partir de PHP 7.1.0, un ArgumentCountError será lanzado si la función callback
requiere más de 2 parámetros (el valor y la clave del miembro del array).
Anteriormente, si la función callback requería más de 2 parámetros,
se generaba un error de nivel E_WARNING cada vez que
array_walk llamaba a callback.
&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_applylisteachcall_user_func_arrayarray_map&foreach;