É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 👩‍💻👨‍💻 !

Vous aimeriez progresser en PHP ? Mais vous ne savez pas comment vous y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" est disponible. Il vous permettra de recevoir chaque semaine un kata de code directement dans votre boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives et des défis supplémentaires.

Reçois dès maintenant un kata gratuit en cliquant sur le bouton ci-dessous.