array_map
En esta página
array_map
Aplica una función sobre los elementos de un array
Descripción#
array_map(callable $callback, array $array, array ...$arrays): array
```php
`array_map` devuelve un `array` que contiene los resultados de la aplicación de la función de devolución de llamada `callback` al valor correspondiente de `array` (y `arrays` si se proporcionan más arrays) utilizados como argumentos para la función de devolución de llamada. El número de argumentos que la función de devolución de llamada `callback` acepta debe corresponder al número de arrays pasados a `array_map`. Los arrays de entrada adicionales son ignorados. Se lanza una `ArgumentCountError` si se proporciona un número insuficiente de argumentos.
## Parámetros
`callback`
La función de devolución de llamada de tipo `callable` a ejecutar para cada elemento de cada array.
`null` puede ser pasado como valor a `callback` para ejecutar una operación zip sobre varios arrays y devolver un array donde cada elemento es un array que contiene los elementos de los arrays de entrada en la misma posición del puntero interno del array (ver ejemplo a continuación). Si solo `array` es proporcionado, array_map devolverá el array de entrada.
`array`
Un array a ejecutar a través de la función de devolución de llamada `callback`.
`arrays`
Lista variable de argumentos de arrays adicionales a ejecutar a través de la función de devolución de llamada `callback`.
## Valores devueltos
Devuelve un `array` que contiene los resultados de la aplicación de la función de devolución de llamada `callback` al valor correspondiente de `array` (y `arrays` si se proporcionan más arrays) utilizados como argumentos para la función de devolución de llamada.
El `array` devuelto conservará las claves del array pasado como argumento, si y solo si, se pasa un solo array. Si se pasan varios arrays como argumento, el `array` devuelto tendrá claves secuenciales en forma de `int`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.0.0 | Si `callback` espera un parámetro a ser pasado por referencia, esta función emite ahora una `E_WARNING`. |
## Ejemplos
Ejemplo con `array_map`
El contenido de la variable `$b` será:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
`array_map` utilizando una función cualquiera
El ejemplo anterior mostrará:
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
`array_map`: uso de varios arrays
El ejemplo anterior mostrará:
// Contenido de $c
Array
(
[0] => El número 1 se dice uno en Español
[1] => El número 2 se dice dos en Español
[2] => El número 3 se dice tres en Español
[3] => El número 4 se dice cuatro en Español
[4] => El número 5 se dice cinco en Español
)
// Contenido de $d
Array
(
[0] => Array
(
[1] => uno
)
[1] => Array
(
[2] => dos
)
[2] => Array
(
[3] => tres
)
[3] => Array
(
[4] => cuatro
)
[4] => Array
(
[5] => cinco
)
)
Generalmente, al utilizar varios arrays, estos deben tener la misma longitud, ya que la función de devolución de llamada se aplica de manera similar a todos los arrays. Si los arrays tienen longitudes desiguales, los más pequeños serán completados con elementos vacíos para alcanzar la longitud del más grande.
Un uso interesante de esta función es la construcción de arrays de arrays, fácilmente realizada pasando el valor `null` como nombre de función de devolución de llamada.
Ejecutar una operación zip de arrays
El ejemplo anterior mostrará:
Array
(
[0] => Array
(
[0] => 1
[1] => one
[2] => uno
)
[1] => Array
(
[0] => 2
[1] => two
[2] => dos
)
[2] => Array
(
[0] => 3
[1] => three
[2] => tres
)
[3] => Array
(
[0] => 4
[1] => four
[2] => cuatro
)
[4] => Array
(
[0] => 5
[1] => five
[2] => cinco
)
)
`null` `callback` con solo `array`
El ejemplo anterior mostrará:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
`array_map` - con claves en forma de `string`
El ejemplo anterior mostrará:
array(1) {
["stringkey"]=>
array(1) {
[0]=>
string(5) "value"
}
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
array(1) {
["stringkey"]=>
string(5) "value"
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
`array_map` - arrays asociativos
Aunque `array_map` no soporta directamente el uso de las claves de un array como entrada, esto puede ser simulado utilizando `array_keys`.
```php
El ejemplo anterior mostrará:
array(3) {
[0]=>
string(24) "v1 era la Primera versión"
[1]=>
string(25) "v2 era la Segunda versión"
[2]=>
string(24) "v3 era la Tercera versión"
}
Véase también#
array_filter, array_reduce, array_walk