PHP配列の1要素だけを削除する方法を調べた

PHPで配列を作成することは多々あります。
ただ、配列の一部を削除することはあまりありません。

なぜなら、削除するなら初めから配列を作らなければよいからです。
なので、配列の一部を削除する方法について知りませんでした。

ところが、今回配列の一部を削除しなければいけない事象がありました。
そもそも可能なのか?
という疑問も含め、調べてみました。

配列の一部を削除する必要が発生した経緯

そもそもなぜ配列の一部を削除しなければいけなかったのか?
について説明いたします。

ズバリセッション情報の削除です。

具体的には、管理画面制作時に必要な情報をセッションに保存しています。
ログアウト時に、セッションに保存した任意の情報を削除する必要がありました。

次回ログイン時に誤動作させないためです。

ただ、セッション情報すべてを消すわけにはいかず、一部の情報だけを削除する必要がありました。
それで、配列の一部を削除する必要が発生したのです。

というわけで、いつものごとくググって調べました。

unset()関数だけで実現できました

例えば次のような配列があるとします。

この中で「test02」だけを削除するとします。

次のような記述で「test02」だけを削除できます。

たったこれだけで、配列の特定メンバだけを削除できました。

unset()ってなんとなくunset($table); というように、配列全部を削除するイメージでしたが、メンバ名を指定することもできることを今回学びました。

ちなみに任意のメンバ名を付けた場合も削除できます。

サンプルは、メンバ名を省略したパターンでしたが、次のような配列でも特定メンバを削除できます。

任意のメンバ名を付けた場合は次のように指定します。
“test02″を削除する例

メンバ名省略時は、数字を指定しますが、任意名称がある場合はその名称で指定します。
配列参照と同じです。

予想外のことはありうるものです

配列の一部を削除するなんて、そもそも意味がないと思っていましたが、今回セッションという全部消してはいけない配列の場合、一部削除が必要という体験をしました。

考えが偏っていると、思いがけない事象で頭を抱えることになります。
発想を柔らかくしておくことが大事だとつくづく思いました。

今回のレポートは以上です。
読んでいただいてありがとうございました。


ホームページに関するお悩み事やご相談事がございましたら私どもまでご連絡ください。 鋭意ご対応申し上げます。
ホームページのご提案もさせていただいております