array_walkEjecuta una función proporcionada por el usuario en cada uno de los elementos de un array
&reftitle.description;
truearray_walkarrayobjectarraycallablecallbackmixedarg&null;
Ejecuta la función callback definida por el usuario
en cada elemento del array array.
array_walk no es afectado por el puntero interno
del array array.
array_walk recorrerá el array en su totalidad
sin tener en cuenta la posición del puntero.
&reftitle.parameters;
array
El array de entrada.
callback
Típicamente, callback toma dos parámetros.
El valor del parámetro array
siendo el primero y la clave/índice, el segundo.
Si callback debe trabajar con los verdaderos
valores del array, especifique que el primer parámetro de
callback debe ser pasado por
referencia. Entonces, los
elementos serán directamente modificados en el array.
Varias funciones internas (por ejemplo, strtolower)
emiten una alerta si más argumentos que los esperados son pasados
a la función y no son utilizables directamente como
callback.
Solo los valores del array pueden ser modificados;
su estructura no puede ser modificada, es decir, no se pueden añadir, eliminar
o reordenar elementos. Si la función de callback no respeta esta
regla, el comportamiento se volverá indefinido e impredecible.
arg
Si el parámetro opcional arg
es proporcionado, será pasado como tercer parámetro a la
función definida por el usuario callback.
&reftitle.returnvalues;
&return.true.always;
&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 elemento del array),
o más de 3 si arg también es proporcionado.
Anteriormente, en este caso un error de nivel
E_WARNING
habría sido generado cada vez que la función
array_walk llama a callback.
&reftitle.changelog;
&Version;&Description;
&return.type.true;
8.0.0
Si callback espera que el segundo o tercer
parámetro sea pasado por referencia, esta función ahora emite
una E_WARNING.
&reftitle.examples;
Ejemplo con array_walk
"lemon", "a" => "orange", "b" => "banana", "c" => "apple");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2\n";
}
echo "Antes ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... y después :\n";
array_walk($fruits, 'test_print');
?>
]]>
&example.outputs;
Ejemplo de array_walk con el uso de una función anónima
{$value}\n";
});
?>
]]>
&example.outputs;
a
1 => b
2 => c
]]>
&reftitle.seealso;
array_walk_recursiveiterator_applylisteachcall_user_func_arrayarray_map&foreach;