更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/11 | JJI | “はじめに”の段落を追加 |
2021/8/19 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
配列を表示するため、次の共通関数を使用している場合があります。
指定した要素の削除
配列の指定要素を削除する場合、unset()関数を使用した方が分かりやすいです。
この記事では、unset()関数を使用した方法を紹介します。
配列
配列の場合、unset()関数を使用すると配列の添え字が歯抜けになります。
添え字を0から連続した値に変更したい場合、array_merge()関数を使用すれば1行で書くことができます。
サンプルプログラムは次の通りです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// ライブラリの読み込み
require_once "lib/sample_lib_02_03.php";
echo "ファイル名:sample02_03_19.php<br>\n";
echo "【PHP】関数<br>\n";
echo "配列の指定要素の削除<br>\n";
// 1次元配列
$ary1 = [
"山田", "太郎", 35, "男性", "東京都", "090-9999-9999"
];
// 配列の出力
echo "削除前の配列数:" . count($ary1) . "<br>\n";
echo_array1($ary1);
// 配列の特定要素の削除
echo "指定要素の削除<br>\n"; // [2] = 35, [4] ="東京都"を削除する
unset($ary1[2], $ary1[4]);
echo "削除後の配列数:" . count($ary1) . "<br>\n";
echo_array1($ary1); // unsetの場合、添え字は歯抜けになる
echo "歯抜けの解消<br>\n";
$result = array_merge($ary1); // array_merge()関数で歯抜けが解消される
echo_array1($result);
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_03_19.php<br>
【PHP】関数<br>
配列の指定要素の削除<br>
削除前の配列数:6<br>
[0]:山田: [1]:太郎: [2]:35: [3]:男性: [4]:東京都: [5]:090-9999-9999:<br><br>
指定要素の削除<br>
削除後の配列数:4<br>
[0]:山田: [1]:太郎: [3]:男性: [5]:090-9999-9999:<br><br>
歯抜けの解消<br>
[0]:山田: [1]:太郎: [2]:男性: [3]:090-9999-9999:<br><br>
連想配列
連想配列でも特定要素を削除する場合、unset()関数を使用します。
サンプルプログラムは次の通りです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// ライブラリの読み込み
require_once "lib/sample_lib_02_03.php";
echo "ファイル名:sample02_03_20.php<br>\n";
echo "【PHP】関数<br>\n";
echo "連想配列の指定要素の削除<br>\n";
// 1次元配列
$ary1 = [
"first_name" => "山田",
"second_name" => "太郎",
"age" => 35,
"seibetsu" => "男性",
"pref" => "東京都",
"tel" => "090-9999-9999"
];
// 配列の出力
echo "削除前の配列数:" . count($ary1) . "<br>\n";
echo_array1($ary1);
// 途中の要素の削除
echo "指定要素の削除<br>\n"; // "age" => 35、"pref" => "東京都"を削除する
unset($ary1["age"], $ary1["pref"]);
// 配列の出力
echo "削除後の配列数:" . count($ary1) . "<br>\n";
echo_array1($ary1);
?>
実行結果です。
・画面

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