2016-03-23 9 views
1

このトピックに関する質問は、主にパフォーマンス/スピードの比較を中心に質問されました。私はJavaScript forループに非常に精通しています。例えば、配列を使用しているときにそれらに近づく方法(このトピックはJavaScriptに関するものではありませんが、今までループ/配列の理解を示すために書いています)とphpのforeach(状況依存)の比較

var arr = [1,3,5]; 
for (var i=0; i<2; i++) { 
    console.log(arr[i]); 
} 

PHPは、配列については、foreachループを使用してそれらをナビゲートする必要があることをPHPに伝えています。しかし、以下の両方のループスタイルで同じ結果が得られます。

<?php 
    $arr = array(1,3,5); 

    foreach($arr as $numbers) { 
     echo "Number is: {$numbers}<br>"; 
    } 

    for ($i=0; $i<=2; $i++) { 
     echo "Number is: " . $arr[$i] . "<br>"; 
    } 
?> 

私は、標準的な対応の要約は「それだけではありません」と理解しています。 for以上の配列に対してforeachを使用し、アレイ外の他のアプリケーションを使用している場合、誰かが全体的な利点をすぐに説明できますか?配列のキーは、文字列またはキーの「ID」のいくつかの並べ替え(DB結果のアレイを反復するとき、これは典型的である)、そのコードはdoesnのを使用して会合している場合

$arrayItems = (count($array) - 1); 
for ($i = 0, $i <= $arrayItems; $i++) { 
    echo $array[$i]; 
} 

+5

phpの配列は実際にはハッシュマップなので、インデックスは順不同である可能性があります –

+1

配列インデックスが0から始まらない場合はどうなりますか? '$ arr = array(1 => 1,3 => 3,5 => 5);' $ arr = array( 'a' => 1、 'b' => 3、 'c' => 5 ); ' – AbraCadaver

+0

可能な複製http://stackoverflow.com/questions/3430194/performance-of-for-vs-foreach-in-php –

答えて

1

は、以下のコードを検討します仕事はありません。 foreachを使用すると、ユースケースがカバーされます。

メモリが役立つ場合、foreachは、フードの下では、より高速な小数ビットかもしれません。

+0

1つのマイナーな調整 - ループを初期化する前に 'count($ array)'を変数に代入すると、PHPは各繰り返しをカウントする必要はありません。マイナーなパフォーマンスの節約ですが、顕著です。 (例えば '$ i'変数を使って)カウントを必要とするものを実行しているなら、' for'ループを使うことは 'foreach'と同様に賢明です。 –

+0

真実ですが、疑似コードであっても、私は答えを編集しました。 – Robbkore

+0

なぜ配列の最後の要素をスキップしますか? –

関連する問題