php - for と foreach はどちらが速いですか?
伊谢尔伦
伊谢尔伦 2017-05-16 13:08:54
0
3
633

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(3)
为情所困

はい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
世界只因有你

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

いいねを押す +0
给我你的怀抱

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート