【PHP】これで分かる関数! – 配列の追加その1 –

PHP

更新履歴

更新日更新者更新内容
2021/8/11JJI・はじめにの段落を追加
・配列の末尾への追加方法についてサンプルプログラムの説明を追記
2021/8/19JJI・サンプルプログラムの実行結果に画面の画像を追加

はじめに

配列を表示するため、次の共通関数を使用している場合があります。

末尾への追加

配列の末尾に要素を追加する方法にはいくつかの方法があります。
サンプルプログラムを使って説明します。

配列

末尾に配列の要素を追加するには次の方法があります。
配列の要素を1つだけ追加する場合は1の方法を使用し、複数の要素を追加する場合、2の方法を使用するように使い分けすることをおすすめします。

1.次のコードのように空の要素を指定する

$ary1[] = "東京都";

2.次のコードのようにarray_push()関数を使用する
array_push()関数を使用した場合、複数の要素を末尾に追加できます

 array_push($ary1, "東京都");

1、2の方法を使用したサンプルプログラムです。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);
    // ライブラリの読み込み
    require_once "lib/sample_lib_02_03.php";

    echo "ファイル名:sample02_03_05.php<br>\n";
    echo "【PHP】関数<br>\n";
    echo "配列の末尾への追加<br>\n";

    // 1次元配列
    $ary1 = [
        "山田", "太郎", 35, "男性"
    ];

    // 配列の出力
    echo "要素追加前の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 末尾に配列の追加
    $ary1[] = "東京都";

    // 追加後の配列の出力
    echo "要素追加後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 追加した配列の削除、array_pop()関数を使用する
    array_pop($ary1);

    // 配列の出力
    echo "複数要素追加前の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 複数要素の末尾への追加、array_push()関数を使用する
    array_push($ary1, "東京都", "090-9999-9991");

    // 追加後の配列の出力
    echo "複数要素追加後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);
?>

実行結果は次の通りです。

・画面

・HTML

ファイル名:sample02_03_05.php<br>
【PHP】関数<br>
配列の末尾への追加<br>
要素追加前の配列数:4<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性:<br><br>
要素追加後の配列数:5<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性: [4]:東京都:<br><br>
複数要素追加前の配列数:4<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性:<br><br>
複数要素追加後の配列数:6<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性: [4]:東京都: [5]:090-9999-9991:<br><br>

連想配列

連想配列の場合、次のように配列とは異なる方法で末尾に要素を追加します。
連想配列の場合、配列の順序は意味がないため、あまり使わないかもしれません。

1.連想配列の要素を指定する

$ary1["pref"] = "東京都";

2. array_merge()関数を使用する
array_merge()関数の場合、複数の要素を一括で追加できます

$ary1 = array_merge($ary1, ["pref" => "東京都", "tel" => "090-9999-9991"]);

3.+=の演算子を使用する

$ary1 += ["pref" => "東京都", "tel" => "090-9999-9991"];

上記の方法を使用したサンプルプログラムです。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);
    // ライブラリの読み込み
    require_once "lib/sample_lib_02_03.php";

    echo "ファイル名:sample02_03_06.php<br>\n";
    echo "【PHP】関数<br>\n";
    echo "連想配列の末尾への追加<br>\n";

    // 1次元連想配列
    $ary1 = [
        "first_name" => "山田", "second_name" => "太郎", "age" => 35, "seibetsu" => "男性"
    ];

    // 配列の出力
    echo "要素追加前の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 末尾に配列の追加
    $ary1["pref"] = "東京都";

    // 追加後の配列の出力
    echo "要素追加後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 追加した配列の削除、array_pop()関数を使用する
    array_pop($ary1);

    // 配列の出力
    echo "複数要素追加前の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 複数要素の追加、連想配列の場合、array_merge()関数を使用する
    $ary1 = array_merge($ary1, ["pref" => "東京都", "tel" => "090-9999-9991"]);

    // 追加後の配列の出力
    echo "複数要素追加後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 追加した複数配列の削除、array_splice()関数を使用する
    array_splice($ary1, 4);

    // 追加前の配列の出力
    echo "複数要素追加前(パターン2)の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    // 複数要素の追加(パターン2)、+=でも追加可能
    $ary1 += ["pref" => "東京都", "tel" => "090-9999-9991"];

    echo "複数要素追加後(パターン2)の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);
?>

実行結果は次の通りです。

・画面

・HTML

ファイル名:sample02_03_06.php<br>
【PHP】関数<br>
連想配列の末尾への追加<br>
要素追加前の配列数:4<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性:<br><br>
要素追加後の配列数:5<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性: [pref]:東京都:<br><br>
複数要素追加前の配列数:4<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性:<br><br>
複数要素追加後の配列数:6<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性: [pref]:東京都: [tel]:090-9999-9991:<br><br>
複数要素追加前(パターン2)の配列数:4<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性:<br><br>
複数要素追加後(パターン2)の配列数:6<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性: [pref]:東京都: [tel]:090-9999-9991:<br><br>

コメント