配列の最後に要素を追加するには、array_push関数を使う方法と空インデックス($array[])を使う方法があります。
<?php $array = array(); for ($i = 0; $i < 10; $i++) { array_push($array, $i); } print_r($array); ?>
<?php $array = array(); for ($i = 0; $i < 10; $i++) { $array[] = $i; } print_r($array); ?>
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 )
実行結果はどちらも同じになりますが、速度が違います。array_push関数よりも空インデックス[]の方が高速です。2つの処理の実行時間を測定してみました。
$array = array(); for ($i = 0; $i < 100000; $i++) { array_push($array, $i); }
$array = array(); for ($i = 0; $i < 100000; $i++) { $array[] = $i; }
○実行結果(秒)
処理1:0.169935
処理2:0.079500
array_push関数より、$array[]で要素を追加した方が高速だということがわかります。
array_push関数は、実行後の要素数を返すので、その情報を取得したい場合には便利です。
<?php $array = array("東京", "千葉", "神奈川"); $result = array_push($array, "沖縄"); echo "現在、{$result}件が登録済みです。"; print_r($array); ?>
○実行結果
現在、4件が登録済みです。
Array ( [0] => 東京 [1] => 千葉 [2] => 神奈川 [3] => 沖縄 )