Fusionner alternativement des tableaux à index plat
Fusionner deux tableaux de manière alternée, en poussant les valeurs dans le résultat une par une plutôt que de les concaténer, est une exigence courante dans le traitement et la manipulation des données. Dans ce cas, nous avons deux tableaux indexés plats, $a1 et $a2, et nous souhaitons les fusionner dans un nouveau tableau, $newArray, de telle sorte que les valeurs soient entrelacées comme suit : [0, 3, 1, 4, 2 , 5].
Bien qu'il soit possible d'y parvenir en utilisant une boucle manuelle comme suggéré, il existe une approche native plus efficace qui offre des avantages en termes de performances. Le code suivant présente l'approche précalculée :
$count = count($a1); for ($i = 0; $i < $count; $i++) { $newArray[] = $a1[$i]; $newArray[] = $a2[$i]; }
Dans ce code, nous déterminons d'abord le nombre d'éléments dans $a1 (en supposant que $a1 et $a2 ont la même taille). Ensuite, nous utilisons une boucle pour parcourir les éléments et les ajouter alternativement au $newArray.
L'analyse comparative des performances, comme indiqué ci-dessous, confirme l'efficacité de cette approche :
$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
Comparé à l'approche qui compte la taille du tableau à chaque itération, cette approche précalculée offre des performances substantielles amélioration :
$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++){ $newArray[] = $a1[$i]; $newArray[] = $a2[$i]; } } echo round(microtime(TRUE) - $start, 2); # 0.85
Bien que l'analyse comparative fournisse un aperçu des performances, il est important de noter que les caractéristiques de performances spécifiques peuvent varier en fonction des données et de l'environnement spécifiques. Néanmoins, cette approche précalculée offre une base solide pour fusionner efficacement des tableaux indexés plats de manière alternée.
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!