array_walk
(PHP 4, PHP 5)
array_walk — Aplicar una función proporcionada por el usuario a cada miembro de un array
Descripción
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.
Parámetros
-
array -
El array de entrada.
-
callback -
Normalmente,
callbackasume dos parámetros. El primero, los valores de los parámetros dearray, y el segundo la clave/índice.Nota:
Si
callbacknecesita trabajar con los valores reales del array, especifique el primer parámetro decallbackcomo 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 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 porcallback.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Errores/Excepciones
Si la función callback requiere más parámetros que
los proporcionados, se generará un error de nivel
E_WARNING cada vez que array_walk()
llame a callback.
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
- array_walk_recursive() - Aplicar una función de usuario recursivamente a cada miembro de un array
- iterator_apply() - Llama una función para cada elemento en un iterador
- list() - Asigna variables como si fuera un array
- each() - Devolver el par clave/valor actual de un array y avanzar el cursor del array
- call_user_func_array() - Llamar a una llamada de retorno un array de parámetros
- array_map() - Aplica la retrollamada especificada a los elementos de cada array
- información acerca de tipos de llamada de retorno
- foreach