Operador Spread en PHP

Publicado el 24-01-2023

Operador Spread en PHP


El parámetro spread “…” lo que hace es expandir un array como si fueran elementos independientes.


Si por ejemplo tenemos:


$a = [0, 1, 2, 3];

$b = [4, 5, 6];


Y queremos añadir los elementos $b al final de $a para que nos quede:


[0, 1, 2, 3, 4, 5, 6] // longitud de $a es 7


no podemos hacer:


$a[] = $b;


Ni:


array_push($a,$b);


Porque en ambos casos el resultado sería:


[0, 1, 2, 3, [4, 5, 6]] // longitud de $a es 5


O visto con un print_r($a):


Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => Array ( [0] => 4 [1] => 5 [2] => 6 ) )


Es decir, que el 5o elemento de $a es un array que contiente los elementos de $b.


De una forma rudimentaria podríamos hacer:


foreach ($b as $item) {

$a[] = $item;

}


Cosa que nos devolvería el resultado deseado. Pero no es cool


En PHP (en JS y otros lenguajes) es mejor usar el operador spread, que expande el array convirtiéndolo en una lista de elementos independientes:


array_push($a, …$b);


Obteniendo el resultado deseado:


[0, 1, 2, 3, 4, 5, 6] // longitud de $a es 7


Fijaos que la función array_push() de PHP admite múltiples parámetros como valores a añadir después del primero que es el array:


array_push($a, 5, 6, 7, 8);


y al expandir el array $b con el operador spread estamos haciendo lo mismo con sus elementos.


Otra cosa que podríamos hacer por ejemplo con el operador spread es:


$array_numeros_del_0_al_9 = [0, 1, 2, 3, …$b, 7, 7, 9];


Por último comentar que cualquier asignación que hagamos con este operador siempre será por copia y la modificación del array original ($b en los ejemplos) no modificarán nunca los elementos de los arrays a los cuales se han asignado sus valores.

Categorías: Algoritmos

Comparte este artículo

https://proogresa.es/blog/algoritmos/operador-spread-en-php
contacto

Web Project & Online Marketing Proogresa S.L. © 2024 | Condiciones Legales | Política de Privacidad | Política de Cookies | Mapa del Sitio HTML , XML | Compliance


Clica AQUÍ para más información. Puedes aceptar todas las cookies pulsando el botón "ACEPTAR" o rechazar todas las cookies pulsando en el botón "RECHAZAR". También puedes configurar su uso clicando AQUÍ.