Évitez d'utiliser la fonction array_merge dans une boucle

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

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

$merged = [];
foreach($var as $array) {
    $merged = array_merge(
        $merged,
        $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).

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

$merged = array_merge(
    [],
    ...$var
);
  • 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 sûr que vous pourrez trouver des endroits à améliorer 👩‍💻👨‍💻 !

Cet article t'a plu ? Si oui, je te propose de t'inscrire à 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