Maison >développement back-end >tutoriel php >Comment puis-je fusionner de manière optimale deux tableaux plats avec des valeurs alternées en PHP ?
Fusionner de manière optimale des tableaux plats avec des valeurs alternées
Dans les situations où les performances sont cruciales, vous pouvez rencontrer le besoin de fusionner deux tableaux plats de valeur égale taille, en alternant leurs valeurs. Bien qu'une simple boucle qui itère sur les tableaux puisse y parvenir, elle laisse place à une optimisation potentielle des performances.
Solution native
Une façon de fusionner efficacement les tableaux utilise un nombre précalculé. Voici le code PHP amélioré :
$count = count($a1); for ($i = 0; $i < $count; $i++) { $newArray[] = $a1[$i]; $newArray[] = $a2[$i]; }
Comparaison des benchmarks
Pour démontrer la différence de performances, nous avons effectué des benchmarks avec le code original et mis à jour :
$a1 = array(0,1,2); $a2 = array(3,4,5); $start = microtime(TRUE); for($t = 0; $t < 100000; $t++) { $newArray = array(); $count = count($a1); for ($i = 0; $i < $count; $i++) { $newArray[] = $a1[$i]; $newArray[] = $a2[$i]; } } echo round(microtime(TRUE) - $start, 2); # 0.6 $a1 = array(0,1,2); $a2 = array(3,4,5); $start = microtime(TRUE); for($t = 0; $t < 100000; $t++) { $newArray = array(); for ($i = 0; $i < count($a1); $i++) // count() inside loop { $newArray[] = $a1[$i]; $newArray[] = $a2[$i]; } } echo round(microtime(TRUE) - $start, 2); # 0.85
Les résultats montrent que le pré-calcul de la taille du tableau à l'aide de count() offre une amélioration notable de la vitesse. En évitant les comptages répétitifs, le code optimisé fonctionne beaucoup plus rapidement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!