Evitez d'utiliser la fonction array_merge dans une boucle en PHP
Post last updated: April 20, 2021
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 👩💻👨💻 !