搜尋

首頁  >  問答  >  主體

php - for與foreach哪個比較快?

for與foreach哪個性能更好一些?還是處理不同的數據有各自的優點?希望大神給解答一下.

伊谢尔伦伊谢尔伦2832 天前646

全部回覆(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 修改了array的資料結構後 foreach更快了

    回覆
    0
  • 给我你的怀抱

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

    遍歷數組還是用foreach吧,畢竟不用先統計數組。

    回覆
    0
  • 取消回覆