PHPで全要素にアクセスするには
普通forやforeach使いますが。array_shift,array_popという手もありますね。
俄に気になったのでパフォーマンス比較。
<?php $range = range(1,100000); $sum = 0; $st = microtime(true); for ($i=0; $i<100000; $i++) { $sum += array_pop($range); } $exetime1 = microtime(true) - $st; echo $exetime1, "\n"; //$range = range(1,100000); //$sum = 0; //$st = microtime(true); //for ($i=0; $i<100000; $i++) { // $sum += array_shift($range); //} //$exetime1 = microtime(true) - $st; //echo $exetime1, "\n"; $range = range(1,100000); $sum = 0; $st = microtime(true); for ($i=0; $i<100000; $i++) { $sum += $range[$i]; } $exetime1 = microtime(true) - $st; echo $exetime1, "\n"; $range = range(1,100000); $sum = 0; $st = microtime(true); foreach ($range as $val) { $sum += $val; } $exetime1 = microtime(true) - $st; echo $exetime1, "\n"; 結果: 0.038421869277954 0.019014120101929 0.010118007659912
array_shiftをコメントアウトしているのは実行が遅すぎて終了しなかったからです。
popなら配列の終わりまで飛んで、配列終了位置を一つずらすだけでいいと。shiftは先頭を取り出した後、全ての要素を一つずつずらしているから遅い、てとこか。
まあ結局foreach使った方が安全で早いと。