ホームページ >バックエンド開発 >PHPチュートリアル >PHP で交互の値を持つ 2 つのフラット配列を最適にマージするにはどうすればよいですか?

PHP で交互の値を持つ 2 つのフラット配列を最適にマージするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-24 07:10:09755ブラウズ

How Can I Optimally Merge Two Flat Arrays with Alternating Values in PHP?

フラット配列と代替値の最適なマージ

パフォーマンスが重要な状況では、等しい値の 2 つのフラット配列をマージする必要が生じる場合があります。サイズ、それらの値を交互に変更します。配列を反復する単純なループでこれを実現できますが、パフォーマンスを最適化する余地が残されています。

ネイティブ ソリューション

配列を効率的にマージする 1 つの方法は、事前に計算されたカウント。改善された PHP コードは次のとおりです:

$count = count($a1);
for ($i = 0; $i < $count; $i++) {
    $newArray[] = $a1[$i];
    $newArray[] = $a2[$i];
}

ベンチマークの比較

パフォーマンスの違いを示すために、元のコードと更新されたコードでベンチマークを実行しました:

$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

結果は、count() を使用して配列サイズを事前計算すると、顕著な速度向上が得られることを示しています。繰り返しのカウントを回避することで、最適化されたコードの動作が大幅に高速化されます。

以上がPHP で交互の値を持つ 2 つのフラット配列を最適にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。