【PHP】配列を削除したり、配列内の要素を削除する様々な関数
今回は配列を削除したり、配列内の要素を削除したりする関数を見ていきます。まだまだ自由自在に操作することは私にはできませんが、ちょっとずつでも覚えていきたいですφ(・_・”)メモメモ
目次
配列または指定の要素を削除する「unset()」関数
|
1 2 |
unset("削除したい配列"); unset("削除したい要素キー","削除したい要素キー","削除したい要素キー",…) |
サンプルコードを見てみましょう。
「unset()」で配列ごと削除
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //unset("配列,配列[キー]") $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); // 実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) unset($group); print_r($group); //実行結果 NULL ?> |
続いてキーを指定して削除してみます。
「unset()」で削除する要素を指定する
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php //unset("配列,配列[キー]") $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); // 実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) unset($group[1],$group[3],$group[5]); print_r($group); // 実行結果 Array ( [0] => 赤 [2] => 黄色 [4] => オレンジ ) ?> |
指定したとおりに削除されていますが…このまま歯抜きなのは少々困る可能性がありますね。
この問題については別記事でメモする「array_values」を参考にして頂ければと思います。
配列の中の要素を削除したり、削除後に要素を置き換えたりすることができる関数「array_splice()」
「array_splice()」関数は慣れなければ少し難しい削除方法かもしれませんが、使いこなせればとても便利な関数です。
array_splice()は配列の中の要素を削除したり、削除後に要素を置き換えたりすることができる関数で、以下のような記述方法になります。
|
1 |
array_splice( 配列, 削除開始位置, 削除する配列の要素数, 置き換える要素 ) |
削除だけを行うならば、第3引数と第4引数は省略でき、置き換えは行いません。
またこの関数、「unset()」との違いとして削除後に配列のインデックス番号(キー)が自動的に詰められます。
早速サンプルコードを見てみましょう
指定位置以降の要素を削除する
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //array_splice("配列, 削除開始位置, 削除する配列の要素数, 置き換える要素") $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); // 実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) array_splice($group,2); print_r($group); // 実行結果 Array ( [0] => 赤 [1] => 青 ) ?> |
指定位置以降、指定した数だけ要素を削除する
今度は第3引数に数値をいれてみます。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //array_splice("配列, 削除開始位置, 削除する配列の要素数, 置き換える要素") $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) array_splice($group,2,2); print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => オレンジ [3] => ピンク ) ?> |
キー[2]から2つ分だけの要素が取り除かれました。取り除かれたのは「黄色」と「緑」ですね。
上記でも書きましたが、「unset()」との違いとしてキー番号が詰められるため、「オレンジ」と「ピンク」のキー番号が変わっていることに注意してください。
指定位置以降、削除した後に別の要素に置き換える
「array_splice()」の最後の使い方ですね。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php //array_splice("配列, 削除開始位置, 削除する配列の要素数, 置き換える要素") $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) array_splice($group,2,2,"金"); print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => 金 [3] => オレンジ [4] => ピンク ) ?> |
指定した位置からして数の要素を取り除き、その間に別の要素を置き換える記述です。文字列だけでなく整数や変数も入ります。
先頭の要素を削除する「array_shift()」関数
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // array_shift(配列); $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) array_shift($group); print_r($group); //実行結果 Array ( [0] => 青 [1] => 黄色 [2] => 緑 [3] => オレンジ [4] => ピンク ) ?> |
要素の末尾を削除する「array_pop()」関数
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // array_pop(配列); $group = ["赤","青","黄色","緑","オレンジ","ピンク"]; print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ [5] => ピンク ) array_pop($group); print_r($group); //実行結果 Array ( [0] => 赤 [1] => 青 [2] => 黄色 [3] => 緑 [4] => オレンジ ) ?> |
まとめ
- 「unset()」で配列、または指定した要素を削除できる
- 「array_splice()」で指定した配列以降の要素の削除や別の要素への置き換えができる
- 「array_shift()」で先頭の要素を削除することができる
- 「array_pop()」で最後の要素を削除することができる