2015年11月18日

PHP 配列のデータ削除

«
»

Pocket

今回は「配列のデータの削除」について書きたいと思います。
まずはサンプルプログラムをみてみましょう。
 

<?php

$fruit = array("Apple","Orange","Strawberry"); 
print_r($fruit); //確認のため表示
echo "<br>";

array_pop($fruit); //一番最後の要素(=データ)が削除される

print_r($fruit);

実行結果

PHP 配列 データ削除

解説

PHP array array_pop
 
PHPでは配列を扱う際に、多くの人がよく使うであろう操作を関数として
あらかじめ用意
しています。(関数の基礎に関しては「関数」のカテゴリーをご覧ください)
 
array_pop(配列変数)と記述することで、引数(ひきすう)に
指定された配列変数の一番最後の要素(=データ)を削除(取り除く)ことができます。
 
実行結果を見てみると一番最後のStrawberryが削除されているのがわかると思います。

インデックスを用いたデータの削除

では、一番最後ではなく、インデックスを指定して削除したい場合は
どうしたらよいでしょうか。
サンプルプログラムをみてみましょう。
 

<?php

$fruit = array("Apple","Orange","Strawberry"); 
print_r($fruit); //確認のため表示
echo "<br>";

array_splice($fruit, 1,1); //インデックスが1のデータを削除する

/*
array_splice(配列変数,削除をするインデックス,削除するデータ数)

もし、
array_splice(配列変数,削除をするインデックス)
とすると、インデックスが1以降のデータが全て削除される
*/

print_r($fruit); //Orangeが消える

実行結果

スクリーンショット 2015-11-18 5.24.40

解説

Orangeが削除されているのがわかると思います。
 
これは、array_splice(配列変数,削除をするインデックス,削除するデータ数)
とすることで、配列の、指定されたインデックス(1はOrangeのインデックス)から
1つ削除するので、Orangeだけが削除されます。
 
もし、array_splice($fruit, 1,2); とすると、インデックスが1から、
2つのデータを削除(OrangeとStrawberry)が削除されます。
 
若干難しいですが、このようにインデックスを指定して削除することもできます

まとめ

・array_popは配列の一番最後データを取り除くことができる
・array_spliceでは、指定したインデックスのデータを削除することができる

【関連する記事】