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回目、
やれば続けられるもんだなぁと自負してる本日であります。

まだまだ、再復帰する為に自分のリハビリとして続けていきます。

どうぞ今後ともよろしくお願いいたします


いいなと思ったら応援しよう!