La Guía Definitiva de la Función array_pad de PHP
Aprende a usar array_pad en PHP para rellenar arrays a una longitud garantizada con valores de relleno al principio o al final.
Los arrays son fundamentales en casi todos los programas PHP y, a veces, necesitas que un array tenga una longitud garantizada — relleno con valores de marcador cuando no la alcanza. La función array_pad de PHP hace exactamente eso: devuelve una copia de un array ampliada hasta un tamaño objetivo, con el valor que elijas llenando los nuevos espacios. Esta guía cubre su sintaxis, cómo el signo del tamaño controla la dirección del relleno, el comportamiento que confunde a la gente y ejemplos ejecutables.
Qué Hace la Función array_pad
array_pad devuelve un nuevo array rellenado hasta la longitud que especifiques. Dos reglas rigen su comportamiento:
- Si el tamaño solicitado es mayor que la entrada, se añaden copias de tu valor de relleno — al final cuando el tamaño es positivo, al principio cuando es negativo.
- Si el tamaño solicitado es menor o igual a la longitud actual de la entrada, el array se devuelve sin cambios.
array_padnunca elimina elementos.
El array original no se modifica; trabajas con el valor devuelto.
Sintaxis de la Función array_pad
array_pad(array $array, int $length, mixed $value): array$array: El array de entrada que deseas rellenar. No se modifica.$length: El tamaño objetivo. Un valor positivo rellena a la derecha (final); un valor negativo rellena a la izquierda (principio). El número de elementos añadidos esabs($length) - count($array).$value: El valor utilizado para cada elemento de relleno. Puede ser de cualquier tipo, incluyendo otro array.
Casos de Uso de la Función array_pad
La función array_pad es muy útil cuando deseas:
- Garantizar que un array tiene al menos N elementos antes de iterar sobre posiciones fijas.
- Alinear datos a la derecha o a la izquierda rellenando el lado opuesto.
- Completar una cuadrícula, formulario o fila de tabla de tamaño fijo con marcadores predeterminados.
Ejemplos de la Función array_pad
A continuación se presentan algunos ejemplos de cómo se puede usar la función array_pad en situaciones del mundo real:
Ejemplo 1: Relleno al Final (Tamaño Positivo)
Salida:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 0
[4] => 0
)El array de entrada $numbers tiene 3 elementos y el tamaño objetivo es 5, por lo que se añaden 5 - 3 = 2 ceros al final.
Ejemplo 2: Relleno al Principio (Tamaño Negativo)
Salida:
Array
(
[0] => black
[1] => black
[2] => red
[3] => green
[4] => blue
)El tamaño -5 es negativo, por lo que el relleno va al principio. Los 3 colores originales mantienen su orden y se anteponen abs(-5) - 3 = 2 copias de 'black'. Ten en cuenta que las claves se reindexan desde 0 independientemente de la dirección.
Ejemplo 3: Rellenar un Array con un Valor Específico
Salida:
Array
(
[0] => a
[1] => b
[2] => c
[3] => z
[4] => z
[5] => z
[6] => z
)La entrada tiene 3 elementos y el tamaño objetivo es 7, por lo que se añaden 7 - 3 = 4 copias de 'z'.
Casos Especiales y Consideraciones
Algunos comportamientos pueden sorprender a la gente:
- Nunca reduce un array. Si
abs($length)es menor o igual al conteo actual, el array se devuelve sin cambios. Para eliminar elementos, usaarray_sliceoarray_spliceen su lugar. - Las claves string se conservan, pero el relleno siempre es numérico. Cuando rellenas un array asociativo, las claves string existentes se preservan y los nuevos elementos obtienen claves enteras secuenciales:
<?php
$scores = array('math' => 90, 'science' => 85);
print_r(array_pad($scores, 4, 0));
?>Array
(
[math] => 90
[science] => 85
[0] => 0
[1] => 0
)- El valor de relleno puede ser de cualquier tipo. Pasar un array como
$valueinserta copias de ese array completo, lo que es útil para construir cuadrículas de filas predeterminadas. - El relleno es fijo, no interpolado. Cada nuevo espacio recibe exactamente el mismo
$value. Si necesitas un relleno generado o secuencial, constrúyelo conarray_fillorange().
Funciones Relacionadas
array_fill— crear un nuevo array completamente lleno con un valor.array_merge— combinar arrays en lugar de rellenar uno.array_sliceyarray_splice— extraer o eliminar partes de un array.array_chunk— dividir un array rellenado en grupos de tamaño fijo.
Conclusión
array_pad es la forma más rápida de garantizar que un array tiene una longitud determinada sin escribir un bucle. Recuerda las dos reglas que rigen su comportamiento: un tamaño positivo rellena el final, un tamaño negativo rellena el principio, y un tamaño igual o inferior a la longitud actual deja el array intacto. Con eso en mente — más el manejo de claves y los casos especiales descritos anteriormente — puedes usar array_pad siempre que necesites arrays de tamaño fijo y predecible en tus proyectos PHP.