2011-12-08 19 views
0

foreachループでarray_keys()を使用するとパフォーマンスが向上しますが、実際には大規模配列でarray_keys()を使用するとコードの速度が向上することはありません。PHPを最適化する - foreachループでarray_keys()を使用するとパフォーマンスが向上しますか?

例:

大規模な配列を持ついくつかのパフォーマンスのゲインを持つようにやや論理的である
foreach(array_keys($myArray) as $ak){ 
    $arrayElement =& $myArray[$ak]; 
    //do whatever I need to do with massive array ... 
} 
+4

これは、あなたが気づくようなものではなく、正直なところです。 – BoltClock

答えて

1

- はい。そうすれば、PHPはkeys +の値とは対照的に、ループ内の配列キーのみをコピーするので、メモリ集約的な手続きが少なくなります。

しかし、コメント欄に記載されているように、通常気付くことではありません。これらのことに習慣をつけるのは良い習慣ですが、かなり複雑で重いスクリプトを書いていない限り、実際にはベンチマークスコアの外に見ることはできません。

+0

早すぎる最適化は悪いです、mkey ....始めに、私は読みやすいように解決します。 –

+0

あなたは正しいと思います。私はかなり大規模な配列でこれを使用しているので、何らかの顕著なパフォーマンスの向上が見られると思いました。私はページ上に投げたタイマーがちょっと下がっていくのを見ます。 – user797963

関連する問題