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

PHP

更新履歴

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

はじめに

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

array_chunk

array_chunk()関数のサンプルプログラムです。
配列、連想配列のそれぞれについてコードを書いています。

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

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

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

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

    echo "要素2ずつの配列に分割、添え字は振りなおす<br>\n";
    $result1 = array_chunk($ary1, 2);

    foreach($result1 as $arys) {
        echo_array1($arys);
    }

    echo "要素2ずつの配列に分割、添え字はそのまま<br>\n";
    $result2 = array_chunk($ary1, 2, true);

    foreach($result2 as $arys) {
        echo_array1($arys);
    }

    echo "要素2ずつの連想配列に分割<br>\n";
    $result3 = array_chunk($ary2, 2);

    // 連想配列の場合、添え字は数字に変わる
    foreach($result3 as $arys) {
        echo_array1($arys);
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_31.php<br>
【PHP】配列関数:array_chunk<br>
要素2ずつの配列に分割、添え字は振りなおす<br>
[0]:山田: [1]:太郎:<br><br>
[0]:35: [1]:男性:<br><br>
[0]:東京都:<br><br>
要素2ずつの配列に分割、添え字はそのまま<br>
[0]:山田: [1]:太郎:<br><br>
[2]:35: [3]:男性:<br><br>
[4]:東京都:<br><br>
要素2ずつの連想配列に分割<br>
[0]:山田: [1]:太郎:<br><br>
[0]:35: [1]:男性:<br><br>
[0]:東京都:<br><br>

array_column

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

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

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

    // 2次元配列
    $ary1 = [
        ["1001", "山田", "太郎", 35, "男性"],
        ["2052", "山田", "次郎", 30, "男性"],
        ["3796", "山田", "花子", 28, "女性"]
    ];

    // 2次元連想配列
    $ary2 = [
        ["id" => "1001", "first_name" => "山田", "second_name" => "太郎", "age" => 35, "seibetsu" => "男性"],
        ["id" => "2052", "first_name" => "山田", "second_name" => "次郎", "age" => 30, "seibetsu" => "男性"],
        ["id" => "3796", "first_name" => "山田", "second_name" => "花子", "age" => 28, "seibetsu" => "女性"]
    ];

    echo "2次元配列から3列目を値にした配列を作る<br>\n";
    $names = array_column($ary1, 2);
    echo_array1($names);

    echo "2次元配列の1列目を添え字、3列目を値にした配列を作る<br>\n";
    $names = array_column($ary1, 2, 0);
    echo_array1($names);

    echo "2次元連想配列から\"second_name\"列を値にした配列を作る<br>\n";
    $names = array_column($ary2, "second_name");
    echo_array1($names);

    echo "2次元連想配列の\"id\"列を添え字、\"second_name\"列を値にした配列を作る<br>\n";
    $names = array_column($ary2, "second_name", "id");
    echo_array1($names);

?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_32.php<br>
【PHP】配列関数:array_column<br>
2次元配列から3列目を値にした配列を作る<br>
[0]:太郎: [1]:次郎: [2]:花子:<br><br>
2次元配列の1列目を添え字、3列目を値にした配列を作る<br>
[1001]:太郎: [2052]:次郎: [3796]:花子:<br><br>
2次元連想配列から"second_name"列を値にした配列を作る<br>
[0]:太郎: [1]:次郎: [2]:花子:<br><br>
2次元連想配列の"id"列を添え字、"second_name"列を値にした配列を作る<br>
[1001]:太郎: [2052]:次郎: [3796]:花子:<br><br>

array_combine

array_combine()関数のサンプルプログラムです。
array_combine()関数はキー用の1次元配列、値用の1次元配列から連想配列を作ることができます。

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

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

    // 1次元配列
    $ary1 = [
        "first_name", "second_name", "age", "seibetsu", "pref"
    ];

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

    echo "2つの1次元配列から連想配列を作る<br>\n";
    $result1 = array_combine($ary1, $ary2);
    // 配列の出力
    echo_array1($result1);
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_33.php<br>
【PHP】配列関数:array_combine<br>
2つの1次元配列から連想配列を作る<br>
[first_name]:山田: [second_name]:太郎: [age]:35: [seibetsu]:男性: [pref]:東京都:<br><br>

array_diff

array_diff()関数のサンプルプログラムです。

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

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

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

    // 1次元配列、比較先
    $ary2 = [
        "name" => "山田", "次郎", 35, "seibetsu" => "女性"
    ];

    echo '$ary1と$ary2の比較' . "<br>\n";
    // 配列の値を比較し、差がある要素を数字の添え字をつけて出力する
    $result1 = array_diff($ary1, $ary2);        

    echo_array1($result1);
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_34.php<br>
【PHP】配列関数:array_diff<br>
要素2ずつの連想配列に分割<br>
[1]:太郎: [3]:男性: [4]:東京都:<br><br>

array_fill

array_fill()関数のサンプルプログラムです。
この関数はテストデータを使用するときに便利かもしれません。

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

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

    echo "添え字の開始は2、要素5の配列を作る". "<br>\n";
    $result1 = array_fill(2, 5, "リンゴ");        
    echo_array1($result1);

    echo "添え字の開始は-5、要素5の配列を作る". "<br>\n";
    $result1 = array_fill(-5, 5, "ゴリラ");        
    echo_array1($result1);
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_03_35.php<br>
【PHP】配列関数:array_fill<br>
添え字の開始は2、要素5の配列を作る<br>
[2]:リンゴ: [3]:リンゴ: [4]:リンゴ: [5]:リンゴ: [6]:リンゴ:<br><br>
添え字の開始は-5、要素5の配列を作る<br>
[-5]:ゴリラ: [0]:ゴリラ: [1]:ゴリラ: [2]:ゴリラ: [3]:ゴリラ:<br><br>

コメント