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

PHP

更新履歴

更新日更新者更新内容
2021/8/11JJI・”はじめに”の段落を追加
2021/8/13JJI・サンプロプログラムの説明を分かりやすくなるように修正
2021/8/19JJI・サンプルプログラムの実行結果に画面の画像を追加

はじめに

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

先頭の削除

配列の先頭から要素を削除する場合、関数を使用した方が簡単にコードを書けます。
この記事では、関数を使用した方法について紹介します。

配列

配列の先頭から要素を削除する場合、削除する要素の数により使用する関数を分けます。

1.要素を1つ削除する
次のコードのようにarray_shift()関数を使用する

array_shift($ary1);

2.要素を複数削除する
次のコードのようにarray_slice()関数を使用する

// 先頭の複数要素の削除、添え字を詰める
$result = array_slice($ary1, 2);

// 先頭の複数要素の削除、添え字を詰めない
$result = array_slice($ary1, 2, count($ary1) - 2, true);

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

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

    echo "ファイル名:sample02_03_15.php<br>\n";
    echo "【PHP】関数<br>\n";
    echo "配列の先頭要素の削除<br>\n";

    // 1次元配列
    $ary1 = [
        "山田", "太郎", 35, "男性", "東京都", "090-9999-9999"
    ];

    $org_ary = $ary1;   // 元の配列のコピー、実体がコピーされる、$org_aryと$ary1は別の変数

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

    // 先頭の1要素の削除
    echo "先頭の1要素の削除<br>\n";
    array_shift($ary1);
    echo "削除後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    $ary1 = $org_ary;    // 配列の元データのコピー

    // 先頭の複数要素の削除、添え字を詰める
    echo "先頭の複数要素の削除、添え字を詰める<br>\n";
    $result = array_slice($ary1, 2);
    echo "削除後の配列数:" . count($result) . "<br>\n";
    echo_array1($result);

    // 先頭の複数要素の削除、添え字を詰めない
    echo "先頭の複数要素の削除、添え字を詰めない<br>\n";
    $result = array_slice($ary1, 2, count($ary1) - 2, true);
    echo "削除後の配列数:" . count($result) . "<br>\n";
    echo_array1($result);
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_15.php<br>
【PHP】関数<br>
配列の先頭要素の削除<br>
削除前の配列数:6<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性: [4]:東京都: [5]:090-9999-9999:<br><br>
先頭の1要素の削除<br>
削除後の配列数:5<br>
[0]:太郎: [1]:35: [2]:男性: [3]:東京都: [4]:090-9999-9999:<br><br>
先頭の複数要素の削除、添え字を詰める<br>
削除後の配列数:4<br>
[0]:35: [1]:男性: [2]:東京都: [3]:090-9999-9999:<br><br>
先頭の複数要素の削除、添え字を詰めない<br>
削除後の配列数:4<br>
[2]:35: [3]:男性: [4]:東京都: [5]:090-9999-9999:<br><br>

連想配列

連想配列も配列と同じ関数を使用することで先頭の要素を削除できます。
ただ、連想配列の場合、配列の順序はあまり意味がないため、使用することはないかもしれません。

配列と同じ関数を使用したサンプルプログラムです。

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

    echo "ファイル名:sample02_03_16.php<br>\n";
    echo "【PHP】関数<br>\n";
    echo "連想配列の先頭要素の削除<br>\n";

    // 1次元配列
    $ary1 = [
        "first_name" => "山田", 
        "second_name" => "太郎", 
        "age" => 35,
        "seibetsu" => "男性",
        "pref" => "東京都",
        "tel" => "090-9999-9999"
    ];

    $org_ary = $ary1;   // 元の配列のコピー、実体がコピーされる、$org_aryと$ary1は別の変数

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

    // 先頭の1要素の削除
    echo "先頭の1要素の削除<br>\n";
    array_shift($ary1);
    echo "削除後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($ary1);

    $ary1 = $org_ary;    // 配列の元データのコピー

    // 先頭の複数要素の削除
    echo "先頭の複数要素の削除<br>\n";
    $result = array_slice($ary1, 2);
    echo "削除後の配列数:" . count($ary1) . "<br>\n";
    echo_array1($result);
?>

実行結果です。

・画面

・HTML

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

コメント