検索

ホームページ  >  に質問  >  本文

php - for と foreach はどちらが速いですか?

for と foreach はどちらの方がパフォーマンスが優れていますか? それとも、異なるデータを処理する際にそれぞれの利点があるのでしょうか? 誰かが答えてくれると嬉しいです。

伊谢尔伦伊谢尔伦2869日前670

全員に返信(3)返信します

  • 为情所困

    为情所困2017-05-16 13:10:54

    はいArrayList这样的可使用下标进行随机访问的数据结构,使用下标访问,要比foreach的方式进行顺序访问,速度要快一些。foreach这样写法,使用的过程产生一个额外的对象Enumerator、各アクセスにはより多くの操作が必要となり、パフォーマンスが低下します。

    foreach是通过GetEnumerator获得一个IEnumerator对象,通过IEnumerator对象执行MoveNext()方法和获取Current属性がトラバースされます。

    だってEnumerator中,做了版本检查处理的工作,所以使用foreach线程安全

    そうですfor的效率通常来说是高于foreachですが、絶対とは言えません。

    それではどうやって選べばいいのでしょうか?私の提案は、効率と安全性の両方を考慮して、複数のスレッドからアクセスできるいくつかのグローバル データ構造オブジェクトで foreach。而对本地变量,则使用for を使用することです。


    更新: 情報を確認したところ、10W を超える配列の場合は foreach の方が効率的ですが、1W の配列の場合は for の方が依然として効率的であることがわかりました。
    http://blog.csdn.net/w2cschoo...

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:10:54

    foreach
    特にphp7では、配列のデータ構造を変更した後、foreachが高速になります

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:10:54

    結局のところ、最初に配列をカウントする必要がないので、foreach を使用することをお勧めします。

    返事
    0
  • キャンセル返事