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

PHP

更新履歴

更新日更新者更新内容
2021/8/11JJI・”はじめに”の段落を追加
2021/8/12JJI・サンプルプログラムの説明を追記
2021/8/13JJI・サンプルプログラムの実行結果に画面の画像を追加

はじめに

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

先頭への追加

配列の先頭に要素を追加する方法についてサンプルプログラムを使って説明します。

配列

配列の先頭に要素を追加する場合、コードを自作する場合の次のように書く必要があります。
追加用配列を別で用意し、用意した配列にループして要素を追加していきます。

// 追加用配列
$ary2 = ["東京都"];

// ループし、追加用配列に追加していく
for($i = 0;$i < count($ary1);$i++) {
    $ary2[] = $ary1[$i];
}

複数行のコードを書くのは手間だと思うので、次のようにarray_unshift()関数を使用することをおすすめします。
array_unshift()関数であれば1行で書くことができます。

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

array_unshift()関数を使用したサンプルプログラムです。
array_unshift()関数であれば、複数の要素を先頭に一括で設定できます。

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

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

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

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

    // 配列の先頭への追加、array_unshift()を使用する
    array_unshift($ary1, "東京都");

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

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

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

    // 配列の先頭へ複数要素の追加、array_unshift()を使用する
    array_unshift($ary1, "東京都", "090-9999-9991");

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

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

・画面

・HTML

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

連想配列

連想配列の場合、array_merge()関数を使用したことをおすすめします。
ただ、連想配列の場合、配列の順序はあまり意味がないため、ほぼ使用することはないと思います。

array_merge()関数を使用したサンプルプログラムです。

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

    echo "ファイル名:sample02_03_08.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);

    // array_merge()関数を使用して配列を追加する
    $result = array_merge(["pref" => "東京都", "tel" => "090-9999-9999"], $ary1);

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

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

・画面

・HTML

ファイル名:sample02_03_08.php<br>
【PHP】関数<br>
連想配列の先頭への追加<br>
要素追加前の配列数:4<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性:<br><br>
要素追加後の配列数:6<br>
[pref]:東京都: [tel]:090-9999-9999: [first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性:<br><br>

コメント