PHPで配列の要素を追加・削除する方法とサンプルコード

PHPで配列の要素を追加・削除する方法とサンプルコード

65 回閲覧されました

みなさんこんにちは、jonioです。

今回はPHPで配列の要素を追加・削除する為のメモになります。

削除

要素を削除するメソッドは以下になります。

  • array_splice
  • unset
  • array_shift
  • array_pop

それぞれ見ていきます。

array_splice

配列の一部を削除したり削除する要素を他の要素に置き換えます。

コードの書き方は下記になります。

array_splice(対象の配列, 削除開始位置, 削除数, 置き換える要素);

削除させ方

第一引数と第二引数があれば機能します、第3引数がないと削除開始位置から全ての要素を削除します。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_splice($array, 2);
  
var_dump($array);

//結果
array(2) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" }

第三引数があると削除する要素数を指定できます。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_splice($array, 2, 1);
  
var_dump($array);

//結果
array(5) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(12) "オレンジ" [3]=> string(18) "パイナップル" [4]=> string(12) "マンゴー" }

削除開始位置がマイナスの場合

配列の一番右側を-1として左に数えます。

例えば下記みたいな使い方をします。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_splice($array, -2, 1, ["置き換え1", "置き換え2"]);
  
var_dump($array);

//結果
array(7) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "バナナ" [3]=> string(12) "オレンジ" [4]=> string(13) "置き換え1" [5]=> string(13) "置き換え2" [6]=> string(12) "マンゴー" }

置き換え

第四引数があると削除した要素を他の要素に置き換えることができます。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_splice($array, 2, 1, "置き換え1");
  
var_dump($array);

//結果
array(6) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(13) "置き換え1" [3]=> string(12) "オレンジ" [4]=> string(18) "パイナップル" [5]=> string(12) "マンゴー"} 

置き換える要素が1つですが2つ以上の時は配列で書きます。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_splice($array, 2, 1, ["置き換え1", "置き換え2"]);
  
var_dump($array);

//結果
array(7) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(13) "置き換え1" [3]=> string(13) "置き換え2" [4]=> string(12) "オレンジ" [5]=> string(18) "パイナップル" [6]=> string(12) "マンゴー" }

要素を削除せず置き換える要素を追加することもできます、この場合は削除する要素数を0にすればいいです。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_splice($array, 2, 0, ["置き換え1", "置き換え2"]);
  
var_dump($array);

//結果
array(8) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(13) "置き換え1" [3]=> string(13) "置き換え2" [4]=> string(9) "バナナ" [5]=> string(12) "オレンジ" [6]=> string(18) "パイナップル" [7]=> string(12) "マンゴー" }

unset

unset(対象の配列[削除位置]);

削除させ方

削除位置を指定すればそこを削除します。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

unset($array[3]);
  
var_dump($array);

//結果
array(5) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "バナナ" [4]=> string(18) "パイナップル" [5]=> string(12) "マンゴー" }

削除位置を指定しないと配列の全ての要素が削除されNULLになります。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

unset($array);
  
var_dump($array);

//結果
NULL

array_shift

配列の先頭の要素を削除します、使い方は下記になります。

array_shift(対象の配列)

使用例

下記になります。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_shift($array);
  
var_dump($array);

//結果
array(5) { [0]=> string(9) "みかん" [1]=> string(9) "バナナ" [2]=> string(12) "オレンジ" [3]=> string(18) "パイナップル" [4]=> string(12) "マンゴー" }

array_pop

配列の最後の要素を削除します、使い方のコードは下記になります。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_pop($array);
  
var_dump($array);

//結果
array(5) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "バナナ" [3]=> string(12) "オレンジ" [4]=> string(18) "パイナップル" }

追加

要素を追加する方法は以下になります。

  • 直接追加
  • array_push
  • array_unshift
  • array_merge

それぞれ説明します。

直接追加

配列を作成した後に下記のコードで配列の要素の最後に要素を追加できます。

配列名[] = 追加する要素;

使用例

下記になります。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

$array[] = "追加する要素";
  
var_dump($array);

//結果
array(7) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "バナナ" [3]=> string(12) "オレンジ" [4]=> string(18) "パイナップル" [5]=> string(12) "マンゴー" [6]=> string(18) "追加する要素" }

array_push

複数の要素(1つでもいい)を配列の要素の最後に追加できます、コードの書き方は下記になります。

array_push (対象の配列, 追加する要素1, 追加する要素2, ・・・);

使用例

下記になります。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_push($array, "追加する要素1", "追加する要素2");
  
var_dump($array);

//結果
array(8) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "バナナ" [3]=> string(12) "オレンジ" [4]=> string(18) "パイナップル" [5]=> string(12) "マンゴー" [6]=> string(19) "追加する要素1" [7]=> string(19) "追加する要素2" }

array_unshift

複数の要素(1つでもいい)を配列の要素の最初に追加します、コードの書き方は下記になります。

array_unshift(対象の配列, 追加する要素1, 追加する要素2, ・・・);

使用例

下記になります。

$array = ['りんご', 'みかん', 'バナナ', 'オレンジ', 'パイナップル', 'マンゴー'];

array_unshift($array, "追加する要素1", "追加する要素2");
  
var_dump($array);

//結果
array(8) { [0]=> string(19) "追加する要素1" [1]=> string(19) "追加する要素2" [2]=> string(9) "りんご" [3]=> string(9) "みかん" [4]=> string(9) "バナナ" [5]=> string(12) "オレンジ" [6]=> string(18) "パイナップル" [7]=> string(12) "マンゴー" }

array_merge

元々の配列に複数の配列(1つでもいい)を追加して追加した配列の要素を元々の配列の要素にします、コードの書き方は下記になります。

array_merge(対象の配列, 追加する配列1, 追加する配列2);

使用例

下記になります。

$array = ['りんご', 'みかん'];

$merge1 = ["バナナ", "オレンジ"];

$merge2 = ["パイナップル", "マンゴー"];

$new_array = array_merge($array, $merge1, $merge2);
  
var_dump($new_array);

//結果
array(6) { [0]=> string(9) "りんご" [1]=> string(9) "みかん" [2]=> string(9) "バナナ" [3]=> string(12) "オレンジ" [4]=> string(18) "パイナップル" [5]=> string(12) "マンゴー" }