ホームページ >バックエンド開発 >PHPの問題 >いくつかの異なる PHP 配列走査方法について話しましょう

いくつかの異なる PHP 配列走査方法について話しましょう

PHPz
PHPzオリジナル
2023-04-27 09:04:28509ブラウズ

インターネット技術の継続的な開発と応用により、Web 開発の人気と重要性がますます高まっています。 PHP は、人気のある Web 開発言語として、動的な Web サイトや Web アプリケーションの構築に広く使用されています。

PHP 開発において、配列は基本的なデータ構造であり、大量のデータを保存および操作するためによく使用されます。配列トラバーサルは、開発において最も一般的な操作の 1 つです。この記事では、いくつかの異なる PHP 配列走査方法を紹介し、その速度を比較します。

  1. for ループ トラバーサル

for ループは、最も基本的で一般的なトラバーサル メソッドの 1 つです。ループ変数をインクリメントまたはデクリメントすることで配列全体を走査し、配列の添え字を通じて各要素の値を取得します。

これは、for ループを使用して配列を走査する方法を示す例です。

$array = array('A','B','C','D','E','F','G');
$array_length = count($array);

for ($i = 0; $i < $array_length; $i++) {
    echo $array[$i];
}

for ループを使用して配列を走査することは、最も一般的で最も簡単な方法の 1 つです。ただし、特に大きな配列を扱う場合は比較的遅くなります。

  1. foreach ループ トラバーサル

foreach ループは、配列トラバーサルのより洗練された方法であり、配列全体を自動的にトラバースし、ループ内の各要素に直接アクセスできます。 。

次の例は、foreach ループを使用して配列を走査する方法を示しています。

$array = array(&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;);

foreach ($array as $value) {
    echo $value;
}

foreach ループを使用して配列を走査する方が、for ループを使用するよりもエレガントで簡潔なコードになります。 。また、特に大きな配列を扱う場合は、通常、for ループよりも高速です。

  1. array_walk 関数トラバーサル

array_walk 関数は、特に配列をトラバースするために PHP によって提供される関数です。反復する配列とコールバック関数の 2 つのパラメーターを受け入れます。配列内の要素の値はコールバック関数で変更できます。

次の例は、array_walk 関数を使用して配列を走査する方法を示しています。

$array = array(&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;);

function print_item($value, $key) {
    echo $value;
}

array_walk($array, &#39;print_item&#39;);

array_walk 関数を使用して配列を走査すると、コードをより効率的かつ簡潔にすることができます。ただし、比較的遅く、コールバック関数の設計によりコードが読みにくくなる可能性があります。

さまざまなメソッドの速度を比較

これらのさまざまな PHP 配列走査メソッドの速度を比較するために、PHP の microtime 関数を使用して実行時間をテストできます。 microtime 関数は、現在の Unix タイムスタンプとマイクロ秒を返します。

これは、さまざまなメソッドのレートと実行時間をテストする方法を示す例です:

$loop = 100000;
$array = array_fill(0, 1000, &#39;A&#39;);

// for loop
$start_time = microtime(true);
for ($i = 0; $i < $loop; $i++) {
    for ($j = 0; $j < count($array); $j++) {
        $value = $array[$j];
    }
}
$end_time = microtime(true);
$for_time = $end_time - $start_time;

// foreach
$start_time = microtime(true);
for ($i = 0; $i < $loop; $i++) {
    foreach ($array as $value) {
        $value = $value;
    }
}
$end_time = microtime(true);
$foreach_time = $end_time - $start_time;

// array_walk
function print_item($value, $key) {
    $value = $value;
}

$start_time = microtime(true);
for ($i = 0; $i < $loop; $i++) {
    array_walk($array, &#39;print_item&#39;);
}
$end_time = microtime(true);
$array_walk_time = $end_time - $start_time;

echo "For loop: " . $for_time . "<br>";
echo "Foreach: " . $foreach_time . "<br>";
echo "Array_walk: " . $array_walk_time . "<br>";

このテストでは、配列に 1000 個の要素を入力し、各メソッドを 100,000 回繰り返してテストしました。次に、microtime 関数を使用して各メソッドの実行時間を計算しました。

テスト結果は次のとおりです:

For loop: 0.46466302871704
Foreach: 0.27876091003418
Array_walk: 0.66399812698364

テスト結果から、foreach ループを使用して配列を走査するのが最も高速な方法であり、for を使用するよりも 40% 138 倍高速です。それぞれ配列を走査するための、loop 関数と array_walk 関数。したがって、PHP 開発では、foreach ループを使用して配列を走査することが最良の選択です。

概要

PHP 開発では、配列の走査操作が非常に一般的で重要です。この記事では、PHP での 3 つの異なる配列走査方法を紹介し、その速度を比較します。テスト結果は、foreach ループを使用して配列を走査するのが最も速い方法であることを示しており、for ループと array_walk 関数よりもそれぞれ 40% と 138% 高速です。したがって、実際の開発では、コードの実行効率を向上させるために、可能な限り配列を走査する foreach ループを使用する必要があります。

以上がいくつかの異なる PHP 配列走査方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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