更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/11 | JJI | ・”はじめに”の段落を追加 |
2021/8/12 | JJI | ・サンプルプログラムの説明を追記 |
2021/8/19 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
配列を表示するため、次の共通関数を使用している場合があります。
途中への追加
配列の途中に要素を追加する方法についてサンプルプログラムを使って説明します。
配列の途中に要素を追加する場合、自作でも書くことができますが、PHP標準で提供されている関数を使用した方が簡単に書くことができます。
この記事ではPHP標準の関数を使用したコードを紹介します。
配列
配列の場合、array_splice()関数を使用します。
array_splice()関数を使用したサンプルプログラムは次の通りです。
サンプルプログラムでは、配列の4番目に2つの要素を追加しています。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// ライブラリの読み込み
require_once "lib/sample_lib_02_03.php";
echo "ファイル名:sample02_03_09.php<br>\n";
echo "【PHP】関数<br>\n";
echo "配列の途中への追加<br>\n";
// 1次元配列
$ary1 = [
"山田", "太郎", 35, "男性"
];
// 配列の出力
echo "要素追加前の配列数:" . count($ary1) . "<br>\n";
echo_array1($ary1);
// 配列の途中への追加、array_splice()を使用する
array_splice($ary1, 3, 0, ["東京都","090-9999-9999"]);
// 追加後の配列の出力
echo "要素追加後の配列数:" . count($ary1) . "<br>\n";
echo_array1($ary1);
?>
実行結果は次の通りです。
・画面

・HTML
ファイル名:sample02_03_09.php<br>
【PHP】関数<br>
配列の途中への追加<br>
要素追加前の配列数:4<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性:<br><br>
要素追加後の配列数:6<br>
[0]:山田: [1]:太郎: [2]:35: [3]:東京都: [4]:090-9999-9999: [5]:男性:<br><br>
連想配列
連想配列の場合、配列の順序はあまり意味がないため、あまり使用することはないと思います。
いろいろな方法が存在しますが、array_slice()関数であれば1行で書くことができます。
array_slice()関数を使用したサンプルプログラムは次の通りです。
配列の4番目に2つの要素を追加しています。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// ライブラリの読み込み
require_once "lib/sample_lib_02_03.php";
echo "ファイル名:sample02_03_10.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_slice()関数を使用する
$result = array_slice($ary1, 0, 3) // 入れる前の配列
+ ["pref" => "東京都", "tel" => "090-9999-9999"] // 途中で入れる配列
+ array_slice($ary1, 3); // 入れた後の配列
// 追加後の配列の出力
echo "要素追加後の配列数:" . count($result) . "<br>\n";
echo_array1($result);
?>
実行結果は次の通りです。
・画面

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