array_push関数による配列要素の追加は$array[]より遅い

スポンサーリンク

配列の最後に要素を追加するには、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] => 沖縄 )

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク