Evitez d'utiliser la fonction array_merge dans une boucle en PHP

12 octobre 2019

Je vois assez souvent dans du code PHP l'utilisation de la fonction array_merge dans des boucles for/foreach/while 😱 :

$arraysToMerge = [ [1, 2], [2, 3], [5, 8] ];

$arraysMerged = [];
foreach($arraysToMerge as $array) {
    $arraysMerged = array_merge($arraysMerged, $array);
}

Cette habitude est particulièrement mauvaise car les performances peuvent devenir désastreuses (surtout sur l'utilisation mémoire).

Depuis PHP 5.6, il y a un nouvel opérateur : l'opérateur de décomposition (ou spread operator).

$arraysToMerge = [ [1, 2], [2, 3], [5,8] ];

$arraysMerged = array_merge([], ...$arraysToMerge);
  • Plus de problème de performance
  • BONUS : Plus de boucle for/foreach/while
  • BONUS : Traitement effectué en une ligne

Regardez maintenant votre base de code, je suis sur que vous pourrez trouver des endroits à améliorer 👩‍💻👨‍💻 !

Tu as vu sur Twitter mes conseils et astuces sur le PHP et tu aimerais les recevoir directement dans ta boîte mail ?
Ou justement tu n'as pas Twitter (ou tu ne me suis pas encore ^^) et tu aimerais toi aussi recevoir ces conseils ?

Inscris-toi alors à ma dev letter pour recevoir régulièrement dans ta boîte mail mes conseils, mes nouveaux articles, des vidéos à voir, des outils à découvrir et encore bien d’autres choses.

Je m'inscris

#Ressources