【PHP】配列を削除したり、配列内の要素を削除する様々な関数

Pocket

今回は配列を削除したり、配列内の要素を削除したりする関数を見ていきます。まだまだ自由自在に操作することは私にはできませんが、ちょっとずつでも覚えていきたいですφ(・_・”)メモメモ

 

配列または指定の要素を削除する「unset()」関数

「unset()」関数は配列、または指定した要素を削除する関数です。キーを指定しない場合は配列ごと削除し、第二引数以降に配列[キー]を指定することで、指定した複数の要素を削除することができます。

サンプルコードを見てみましょう。

「unset()」で配列ごと削除

「unset($group)」以降の出力結果がエラーとなりました。「unset()」関数により「$group」配列が全て削除された結果です。
続いてキーを指定して削除してみます。

 

「unset()」で削除する要素を指定する

実行結果を見てみると、「unset()」で指定したキーの箇所がなくなって歯抜きになっています。
指定したとおりに削除されていますが…このまま歯抜きなのは少々困る可能性がありますね。
この問題については別記事でメモする「array_values」を参考にして頂ければと思います。

配列の中の要素を削除したり、削除後に要素を置き換えたりすることができる関数「array_splice()」

array_splice()」関数は慣れなければ少し難しい削除方法かもしれませんが、使いこなせればとても便利な関数です。
array_splice()は配列の中の要素を削除したり、削除後に要素を置き換えたりすることができる関数で、以下のような記述方法になります。

削除だけを行うならば、第3引数と第4引数は省略でき、置き換えは行いません。
またこの関数、「unset()」との違いとして削除後に配列のインデックス番号(キー)が自動的に詰められます。
早速サンプルコードを見てみましょう

指定位置以降の要素を削除する

「array_splice()」の第2引数に「2」が指定されており、これは配列の[2]移行を削除しますという意味です。実行結果を見てみると、綺麗に削除できていますね。

指定位置以降、指定した数だけ要素を削除する

今度は第3引数に数値をいれてみます。

 

キー[2]から2つ分だけの要素が取り除かれました。取り除かれたのは「黄色」と「緑」ですね。
上記でも書きましたが、「unset()」との違いとしてキー番号が詰められるため、「オレンジ」と「ピンク」のキー番号が変わっていることに注意してください。

指定位置以降、削除した後に別の要素に置き換える

「array_splice()」の最後の使い方ですね。

指定した位置からして数の要素を取り除き、その間に別の要素を置き換える記述です。文字列だけでなく整数や変数も入ります。

 

先頭の要素を削除する「array_shift()」関数

array_shift()」関数は要素の先頭を取り除き、キー番号を詰める関数です。引数に配列を入れるだけとなっているので扱いはとてもかんたんですね。

要素の末尾を削除する「array_pop()」関数

array_pop()」関数は要素の末尾を取り除く関数です。

まとめ

  • 「unset()」で配列、または指定した要素を削除できる
  • 「array_splice()」で指定した配列以降の要素の削除や別の要素への置き換えができる
  • 「array_shift()」で先頭の要素を削除することができる
  • 「array_pop()」で最後の要素を削除することができる

エッグ

シェアする

コメントを残す

メールアドレスが公開されることはありません。

コメントする