【PHP入門】配列の要素を削除する方法まとめ

image
書いた人 ヤマシタ

こんにちは!フリーエンジニアのヤマシタです。

PHPでは、さまざまな方法で配列を削除することができます。

この記事では、

・array_spliceで配列を要素を削除する方法
・unsetで配列の要素を削除する方法

という基本的な配列の削除方法から、

・array_diffで差分を残して削除する方法
・array_shiftで先頭の要素を削除する方法
・array_popで配列末尾を削除する方法

などの応用的な使い方に関しても解説していきます。

今回はそんな配列のさまざまな削除方法についてわかりやすく解説します!

array_spliceで配列を要素を削除する

array_spliceとは

array_splice関数は、指定した要素を削除するときに使用します。

書き方:

引数:
第一引数には削除対象の配列を指定します。
第二引数には削除対象の位置を数値で指定します。
第三引数の削除数は、指定した値のみ要素を残して、後に続く要素をいくつ残すか指定します。
単純に第二引数で指定した数値のあとの要素数をいくつ削除するか指定するものではありません。

返り値:
削除後の配列を返します。

※array_splice関数は、削除後の配列の要素数が自動的に詰められます。後述するunset関数は削除後の配列の要素数が詰められません。

array_spliceの使い方

以下にarray_splice関数を使用した、配列の要素を削除するサンプルを紹介します。

サンプルプログラム

実行結果:

array_splice関数を使用すれば、配列から指定した要素が削除できて、要素番号が詰められることがわかりますね!

unsetで配列の要素を削除する

unsetとは

unset関数は、指定した要素の値を削除します。

書き方:

引数:
1つまたは複数の変数や配列の要素番号を指定します。

返り値:
unset関数には返り値はありません。

unsetの使い方

以下にunset関数を使用して配列の要素を指定して削除するサンプルを紹介します。

サンプルプログラム

実行結果:

unset関数を使用すれば、配列から指定した要素が削除できますが、先述したとおりarray_splice関数のように削除後に要素番号は詰められません。

そのため、要素数を詰めたい場合は後述する「配列の番号を詰める方法」を参照してください。

unsetでまとめて削除する

unset関数を使用すれば、ループで配列全体の値を取得し、特定の条件の要素のみ削除するときに便利です。

以下に配列の要素が’orange’、’melon’の場合は、値を削除する処理を記述します。

サンプルプログラム

実行結果:

配列の番号を詰める方法

unset関数などで、特定の要素の配列を削除しても要素番号自体が変更されることはありません。

そのため、array_values関数を使用して、削除した配列の要素分番号を詰める処理が必要な場合もあります。

array_values関数は、配列の削除処理後に以下のように記述します。

書き方:

以下にunsetで配列の要素を削除したあとに、array_values関数で配列の番号を詰めるサンプルを紹介します。

サンプルプログラム

実行結果:

array_diffで差分を残して削除する

array_diffとは

array_diff関数は、対象の配列1を他の配列2と比較し、配列1の値で他の配列に存在しない値以外を削除します。

書き方:


引数:

第一引数に比較元の配列を指定します。
第一引数以降は、比較対象の配列を1つまたは複数指定します。

返り値:
比較対象の配列に含まれない要素を配列で返します。

array_diffの使い方

以下にarray_diff関数を使用して、配列の要素を比較して差分のみ残すサンプルを記述します。

サンプルプログラム

実行結果:

サンプルでは配列fruits1とfruits2を作成し、array_diff関数で配列同士を比較して、一致した値がある場合は、削除を実施しています。

配列fruits1で設定した’banana’、’pineapple’は、fruits2には存在しないので削除されません。

array_shiftで先頭の要素を削除する

array_shiftとは

array_shift関数は先頭の要素を取り出す関数で、取り出された配列は先頭の要素が削除されます。

書き方:

引数:
対象の配列を指定します。

返り値:
先頭の要素を取り出した値を返します。
引数の配列が空の場合や配列以外の変数の場合は、NULLを返します。

array_shiftの使い方

以下にarray_shift関数を使用して、配列の先頭の要素を削除するサンプルを記述します。

サンプルプログラム

実行結果:

array_popで配列末尾を削除する

array_popとは

array_pop関数は、引数に指定した配列の末尾の要素を削除します。

書き方:

引数:
対象の配列を指定します。

返り値:
先頭の最後の要素を取り出した値を返します。
引数の配列が空の場合や配列以外の変数の場合は、NULLを返します。

array_popの使い方

以下にarray_pop関数を使用して、配列の末尾を削除する処理を記述します。

実行結果:

array関数についてもっと詳しく知りたい方へ

配列を操作するさまざまな関数の使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

・array_sum関数の使い方
・array_unique関数の使い方
・array_values関数の使い方
・array_keys関数の使い方
・array_filter関数の使い方
・array_map関数の使い方
・array_push関数の使い方
・array_key_exists関数の使い方
・array_pad関数の使い方
・implode関数の使い方
・配列の削除方法
・配列の検索方法
・よく使用する配列操作

まとめ

ここでは配列を削除するさまざまな方法として、

・array_spliceで配列を要素を削除する方法
・unsetで配列の要素を削除する方法
・array_diffで差分を残して削除する方法
・array_shiftで先頭の要素を削除する方法
・array_popで配列末尾を削除する方法

について、解説しました。

配列を扱った処理は、実際の開発でもよく使用しますので、この機会にぜひ覚えておきましょう。

もし、配列の削除方法を忘れてしまったら、この記事を思い出してくださいね!


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

学習者インタビュー

23歳、早稲田中退生が3ヶ月でフリーランスエンジニアになるまで
32歳ベンチャー企業元役員が起業してプログラミングを学んだ話
元ディスクユニオン店員が33歳からプログラミングを学びエンジニアになるまで
ヨガスタジオのマネージャーだった私が3ヶ月でWeb制作をマスターするためにした”たった1つ”のこと
Uターン女子がRubyを学んで理想のライフスタイルを手に入れた話
新卒、文系出身エンジニアが語る、経験0からプログラミングができるようになった理由

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大10,000円!テック系ライターさん大大大募集!!!
LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります