W3docs

Función array_map de PHP: Guía completa

La función array_map en PHP es una herramienta esencial para transformar arrays de datos aplicando un callback a cada elemento.

La función array_map en PHP es una herramienta esencial para transformar arrays de datos. Permite a los desarrolladores aplicar una función de callback a cada elemento de un array y devolver un nuevo array con los resultados. Es una técnica versátil y poderosa para procesar datos en PHP, y puede utilizarse en una amplia variedad de aplicaciones.

¿Cómo funciona array_map?

La sintaxis básica de la función array_map es la siguiente:

Sintaxis de la función array_map de PHP

array_map(callback, array1, array2, ...);

Aquí, el argumento callback es la función que se aplicará a cada elemento de los arrays. Los demás argumentos son los arrays que se procesarán. Por ejemplo, considera el siguiente código:

Ejemplo de uso de la función array_map en PHP

php— editable, runs on the server

Este código define una función simple, square, que toma un número y devuelve su cuadrado. La función array_map se utiliza para aplicar esta función a cada elemento del array $numbers. El resultado es un nuevo array, $squared, que contiene los cuadrados de los números originales.

Nota sobre las longitudes de los arrays: Cuando se pasan múltiples arrays a array_map, el procesamiento continúa hasta agotar el array más largo. Si los arrays tienen longitudes diferentes, los elementos faltantes en los arrays más cortos se tratan automáticamente como null.

Nota sobre la sintaxis moderna: En PHP 7.4+, puedes usar arrow functions para callbacks concisos. Por ejemplo: array_map(fn($n) => $n * $n, $numbers);

Ejemplos prácticos de array_map

La función array_map es extremadamente versátil y puede utilizarse en muchos contextos diferentes. A continuación se presentan algunos ejemplos para dar una idea de su potencia:

Transformar arrays de strings

PHP: Transformar arrays de strings usando la función array_map

php— editable, runs on the server

En este ejemplo, la función array_map se usa para convertir un array de strings a mayúsculas. La función upper toma un string y devuelve su equivalente en mayúsculas. Cuando esta función se aplica a cada elemento del array $words, el resultado es un nuevo array con las versiones en mayúsculas de las palabras originales.

Combinar arrays con array_map

PHP: Combinar arrays con array_map

php— editable, runs on the server

En este ejemplo, dos arrays, $a y $b, se combinan en un tercer array, $c. La función sum toma dos argumentos y devuelve su suma. La función array_map se usa para aplicar esta función a cada par correspondiente de elementos en $a y $b. El resultado es un nuevo array, $c, que contiene las sumas de los pares originales.

Comprimir arrays con un callback null

Si pasas null como callback, array_map comprime los arrays juntos: cada elemento del resultado es un array con los valores correspondientes de cada array de entrada. Esto es útil para emparejar datos relacionados sin necesidad de escribir una función.

PHP: Comprimir arrays con array_map y un callback null

<?php

$ids   = [1, 2, 3];
$names = ['Alice', 'Bob', 'Carol'];

$pairs = array_map(null, $ids, $names);

print_r($pairs);

?>

El resultado es [[1, 'Alice'], [2, 'Bob'], [3, 'Carol']] — un array interno por cada fila.

Aspectos a tener en cuenta

  • Las claves se preservan solo con un único array. Cuando se pasa un array, array_map mantiene las claves originales. Con dos o más arrays, re-indexa el resultado con claves enteras secuenciales, por lo que las claves de string se pierden.
  • array_map no modifica el array original. Siempre devuelve un nuevo array. Si quieres transformar un array en su lugar, usa array_walk en su lugar.
  • El callback debe ser invocable. Pasa el nombre de una función como string ('square'), una función anónima, una arrow function o un array [$object, 'method']. Consulta funciones callback de PHP para ver la lista completa de formas aceptadas.

Cuándo usar array_map frente a otras funciones de array

  • Usa array_map para transformar cada elemento en un nuevo valor (un elemento de entrada → un elemento de salida).
  • Usa array_filter cuando quieras conservar solo los elementos que superen una prueba.
  • Usa array_reduce cuando quieras reducir el array a un único valor, como una suma o una cadena concatenada.

Conclusión

La función array_map en PHP es una herramienta increíblemente poderosa para transformar arrays de datos. Ya sea que estés convirtiendo strings a mayúsculas, combinando arrays o realizando algún otro tipo de cálculo, array_map es la herramienta perfecta para el trabajo. Con su sintaxis flexible y la capacidad de trabajar con múltiples arrays a la vez, es una función imprescindible para cualquier desarrollador PHP.

Práctica

Práctica
¿Qué es cierto sobre la función array_map() en PHP?
¿Qué es cierto sobre la función array_map() en PHP?
Was this page helpful?