PHP見直し -配列の削除ー
こんにちは、リスターマークです。
今日で5回目です。いい感じに続けられていることにほっとしております。
さて、今回は配列の削除についてまとめてみました。どうぞ最後までお楽しみください。
● 配列の一部を削除する時
例:4番目の上田を削除する場合
$data = ['浅賀','安藤','石川','上田','江藤' ];
$data[3] = NULL;
print_r($data);
// 結果:Array ( [0] => 浅賀 [1] => 安藤 [2] => 石川 [3] => [4] => 江藤 )
NULLとは空っぽとか何もないという意味で使う用語です。
結果として、3番目の配列には空白が生じます。
【注意】:NULLを使う時はクオート(’')で囲まない事です。
仮にクオートでNULLを囲ってしまうとこのようになります。
$data = ['浅賀','安藤','石川','上田','江藤' ];
$data[3] = 'NULL';
print_r($data);
// 結果:Array ( [0] => 浅賀 [1] => 安藤 [2] => 石川 [3] => NULL [4] => 江藤 )
「3番、上田君に代わりまして、NULL君が代打します」って感じで
NULLという人が入ってしまいます。確かに、海外ではNULLという名前の人がいてもおかしくはないです
● 配列を全部削除する時
unset($配列)と入力する
$data = ['浅賀','安藤','石川','上田','江藤' ];
unset($data);
var_dump ($data);
//結果:NULL *エラー文標示あり
//結果: NULL *一部でエラー文標示ありエラー文には「$dataという変数は定義されてないぞ!」という内容のエラーが返ってきます。
つまり、空っぽ(NULL)になったということになります。
● 配列の後半を削除する時
array_splice(配列,インデックス番号)で対応します
例 石川から後ろを配列から消去する
$data = ['浅賀','安藤','石川','上田','江藤' ];
array_splice($data,3);
print_r ($data);
//結果: Array ( [0] => 浅賀 [1] => 安藤 [2] => 石川 )
array_spliceを使うと、第1引数($data)の第2引数(3)から削除するということを指示することになります。
ここでの注意点は、
① 第1引数と第2引数の間にカンマ(,)で区切ること
② 第2引数はキー配列の番号で書くこと ⇒ 値で書いたらエラーになる ということです
↑ ②の内容は今回でいうと、(3)ではなく、(’上田’)と入れたらエラーになるということです。
$data = ['浅賀','安藤','石川','上田','江藤' ];
array_splice($data,'上田');
print_r ($data);
//結果: エラー
● 配列の先頭を削除する時
array_shift(配列)で対応します
今回の例でいうと、先頭の浅賀を削除するとなるとこうなります。
//配列の先頭を削除する = ’浅賀’を削除する
$data = ['浅賀','安藤','石川','上田','江藤' ];
array_shift($data);
print_r ($data);
// 結果:Array ( [0] => 安藤 [1] => 石川 [2] => 上田 [3] => 江藤 )
先ほどのNULLを使っての削除との違いは
浅賀が消えたことで、配列が一つずつ繰り上がっています。
[1]⇒ 安藤 → [0]⇒ 安藤
[2]⇒ 石川 → [1]⇒ 石川
[3]⇒ 上田 → [2]⇒ 上田
[4]⇒ 江藤 → [3]⇒ 江藤
NULLで消したときはこうでしたね。
[0]⇒ 浅賀 → [0]⇒
[1]⇒ 安藤 → [1]⇒ 安藤
[2]⇒ 石川 → [2]⇒ 石川
[3]⇒ 上田 → [3]⇒ 上田
[4]⇒ 江藤 → [4]⇒ 江藤
繰り上げなのか、空っぽなのかを間違えないようにしましょう
今回は配列の削除についてまとめていきました。
今回で5回目、
やれば続けられるもんだなぁと自負してる本日であります。
まだまだ、再復帰する為に自分のリハビリとして続けていきます。
どうぞ今後ともよろしくお願いいたします