Comment puis-je fusionner de manière optimale deux tableaux plats avec des valeurs alternées en PHP ?

DDD
Libérer: 2024-11-24 07:10:09
original
696 Les gens l'ont consulté

How Can I Optimally Merge Two Flat Arrays with Alternating Values in 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];
}
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal