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

PHP

更新履歴

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

はじめに

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

array_reverse

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

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

    echo "ファイル名:sample02_03_41.php<br>\n";
    echo "【PHP】配列関数:array_reverse<br>\n";

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

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

    echo '配列の逆転、添え字は逆転しない' . "<br>\n";
    $result = array_reverse($ary1);
    echo_array1($result);

    echo '配列の逆転、添え字は逆転する' . "<br>\n";
    $result = array_reverse($ary1, true);
    echo_array1($result);

    echo '連想配列の逆転' . "<br>\n";
    $result = array_reverse($ary2, true);
    echo_array1($result);
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_41.php<br>
【PHP】配列関数:array_reverse<br>
配列の逆転、添え字は逆転しない<br>
[0]:東京都: [1]:男性: [2]:35: [3]:太郎: [4]:山田:<br><br>
配列の逆転、添え字は逆転する<br>
[4]:東京都: [3]:男性: [2]:35: [1]:太郎: [0]:山田:<br><br>
連想配列の逆転<br>
[pref]:東京都: [seibetsu]:男性: [age]:35: [second_name]:太郎: [first_name]:山田:<br><br>

array_search

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

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

    echo "ファイル名:sample02_03_42.php<br>\n";
    echo "【PHP】配列関数:array_search<br>\n";

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

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

    echo '配列:$ary1の値に"太郎"が存在するか検索する' . "<br>\n";
    echo "検索結果:" . array_search("太郎", $ary1) . ":<br><br>\n";

    echo '連想配列:$ary2の値に"男性"が存在するか検索する' . "<br>\n";
    echo "検索結果:" . array_search("男性", $ary2) . ":<br><br>\n";

    echo '配列:$ary1の値に"次郎"が存在するか検索する' . "<br>\n";
    if(array_search("次郎", $ary1) === false) {
        echo '$ary1の値には"次郎"は存在しません' . "<br><br>\n";
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_42.php<br>
【PHP】配列関数:array_search<br>
配列:$ary1の値に"太郎"が存在するか検索する<br>
検索結果:1:<br><br>
連想配列:$ary2の値に"男性"が存在するか検索する<br>
検索結果:seibetsu:<br><br>
配列:$ary1の値に"次郎"が存在するか検索する<br>
$ary1の値には"次郎"は存在しません<br><br>

array_slice

配列

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

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

    echo "ファイル名:sample02_03_43.php<br>\n";
    echo "【PHP】配列関数:array_slice<br>\n";

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

    echo '配列の4番目以降を切り取る' . "<br>\n";
    $result = array_slice($ary1, 3);
    echo_array1($result);

    echo '配列の3番目以降から3つの要素を切り取る' . "<br>\n";
    $result = array_slice($ary1, 2, 3);
    echo_array1($result);

    echo '配列の2番目以降から3つの要素を切り取る' . "<br>\n";
    $result = array_slice($ary1, -5, 3);
    echo_array1($result);

    echo '配列の4番目以降を切り取り、添え字は元の配列のままにする' . "<br>\n";
    $result = array_slice($ary1, 3, null, true);
    echo_array1($result);

    echo '配列の存在しない位置を指定する、空の配列が返される' . "<br>\n";
    $result = array_slice($ary1, 6, 3);
    
    if(empty($result)) {
        echo '$resultは空です' . "<br>\n";
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_43.php<br>
【PHP】配列関数:array_slice<br>
配列の4番目以降を切り取る<br>
[0]:男性: [1]:東京都: [2]:090-9999-9999:<br><br>
配列の3番目以降から3つの要素を切り取る<br>
[0]:35: [1]:男性: [2]:東京都:<br><br>
配列の2番目以降から3つの要素を切り取る<br>
[0]:太郎: [1]:35: [2]:男性:<br><br>
配列の4番目以降を切り取り、添え字は元の配列のままにする<br>
[3]:男性: [4]:東京都: [5]:090-9999-9999:<br><br>
配列の存在しない位置を指定する、空の配列が返される<br>
$resultは空です<br>

連想配列

連想配列にarray_slice()関数を使用したサンプルプログラムです。

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

    echo "ファイル名:sample02_03_43.php<br>\n";
    echo "【PHP】配列関数:array_slice<br>\n";

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

    echo '配列の4番目以降を切り取る' . "<br>\n";
    $result = array_slice($ary1, 3);
    echo_array1($result);

    echo '配列の3番目以降から3つの要素を切り取る' . "<br>\n";
    $result = array_slice($ary1, 2, 3);
    echo_array1($result);

    echo '配列の2番目以降から3つの要素を切り取る' . "<br>\n";
    $result = array_slice($ary1, -5, 3);
    echo_array1($result);

    echo '配列の4番目以降を切り取り、添え字は元の配列のままにする、連想配列の場合、意味がない' . "<br>\n";
    $result = array_slice($ary1, 3, null, true);
    echo_array1($result);

    echo '配列の存在しない位置を指定する、空の配列が返される' . "<br>\n";
    $result = array_slice($ary1, 6, 3);
    
    if(empty($result)) {
        echo '$resultは空です' . "<br>\n";
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_43.php<br>
【PHP】配列関数:array_slice<br>
配列の4番目以降を切り取る<br>
[seibetsu]:男性: [pref]:東京都: [tel]:090-9999-9999:<br><br>
配列の3番目以降から3つの要素を切り取る<br>
[age]:35: [seibetsu]:男性: [pref]:東京都:<br><br>
配列の2番目以降から3つの要素を切り取る<br>
[second_name]:太郎: [age]:35: [seibetsu]:男性:<br><br>
配列の4番目以降を切り取り、添え字は元の配列のままにする、連想配列の場合、意味がない<br>
[seibetsu]:男性: [pref]:東京都: [tel]:090-9999-9999:<br><br>
配列の存在しない位置を指定する、空の配列が返される<br>
$resultは空です<br>

コメント