PHPの配列についてのまとめ!(追加 / 削除 / 結合 など)

PHP

この記事では、PHPの配列について、配列の宣言や操作方法をまとめてみました。

基本的な説明は、下記記事で書いています。
・ 配列について
・ 連想配列について

配列についての公式ドキュメントはこちらです。

PHPで配列を宣言する方法

PHPの配列を宣言するには[]を使用する方法と、arrayを使う方法があります。
下記の$arrayTestはどちらも同じ配列として初期化されています。

$arrayTest = [];
$arrayTest = array();

配列に初期化時に要素を入れて、宣言することも可能です。
[]arrayを使って、配列を下記のように作成しましたが、どちらも同じです。

$fruits = ["apple", "orange", "grape"];
$fruits = array("apple", "orange", "grape");

[]の方が短くかけるので、個人的にはこちらがオススメです。

ちなみに、配列の要素番号(インデックス)は0からになります。

echo $fruits[0]; // apple
echo $fruits[1]; // orange

PHPの配列に要素を追加する

PHPの配列に要素を追加する方法です。
要素の追加には[]を使用する方法と、array_push関数を使う方法があります。

[]を使って、追加する

まず[]を使用する方法です。

$fruits = ["apple", "banana"];
$fruits[] = "grape";

$fruits配列を2つ要素で初期化した後に、”grape”を追加しました。
この状態で、出力すると下記のようになります。

>>> var_dump($fruits);
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(5) "grape"
}

ちゃんと、”grape”が追加されています。
このように配列[] = 入れたい値で追加していくことができます。
配列の末尾に追加されていきます。

array_pushを使って、追加する

array_push関数を使用して、追加する方法です。

$fruits = ["apple", "banana"];
array_push($fruits, "grape");

$fruits配列は先程と同じように3つの要素が入った状態になります。

このようにarray_push関数を使用して追加することができます。
第1引数に「配列」を指定して、第2引数に「追加したい要素」を書きます。
こちらも配列の末尾に追加されていきます。

PHPの配列の要素を削除する

配列の要素を削除する方法です。

先頭を削除する

array_shift関数を使うと、先頭から削除されます。
渡した配列の先頭要素を削除してくれます。

$fruits = ["apple", "banana", "grape"];
array_shift($fruits);

var_dump($fruits);

結果として、配列に残るのは下記になります。

array(2) {
  [0]=>
  string(6) "banana"
  [1]=>
  string(5) "grape"
}

末尾を削除する

array_pop関数を使うと、末尾から削除されます。
渡した配列の末尾要素を削除してくれます。

$fruits = ["apple", "banana", "grape"];
array_pop($fruits);

var_dump($fruits);

結果、配列に残るのは下記になります。

array(2) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
}

array_spliceを使用して、指定位置から削除する

array_splice関数を使用して、指定位置から削除します。

$fruits = ["apple", "banana", "grape"];
array_splice($fruits, 1, 1);

array_splice第1引数には「配列」、第2引数には「削除を開始する要素番号」、第3引数には「削除する個数」を渡します。
今回の例だと、$fruits配列の1番目の要素から1つ削除するので、下記のように”apple”と”grape”が残ります。

array(2) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(5) "grape"
}

下記のように1番目から2つ削除するという指定をします。

$fruits = ["apple", "banana", "grape", "orange", "peach"];
array_splice($fruits, 1, 2);

“banana”から2つとなるので、配列に残るのは"apple", "orange", "peach"となります。

PHPの配列を結合する

array_merge関数を使用すると、配列を結合することができます。

$fruits = ["apple", "banana", "grape"];
$game = ["switch", "3DS", "64"];

$chaos = array_merge($fruits, $game);
var_dump($chaos);

array_merge関数には、第1引数と第2引数に結合したい配列を渡します。
結果の配列が返ってくるので、受け取って使用します。

ここでの結果は、下記のように表示されます。

array(6) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(5) "grape"
  [3]=>
  string(6) "switch"
  [4]=>
  string(3) "3DS"
  [5]=>
  string(2) "64"
}

PHPの配列で要素数を取得する

count関数を使うことで、要素数を調べられます。

$fruits = ["apple", "banana", "grape"];
count($fruits);

結果として、3が返ってきます。
多次元配列になっている場合は、配列の箇所もそのままカウントされてしまいます。

$fruits = ["apple", "banana", "grape", ["hoge", "fuga"]];                
count($fruits);

この結果が4になります。
再帰的にカウントしたい場合はモードを指定します。

count($fruits, COUNT_RECURSIVE);

COUNT_RECURSIVEと指定することで、再帰的にカウントされ6になります。

PHPの配列要素をループして表示する

forを使う方法とforeachを使う方法がありますが、配列を全て回すならforeachを使うと良いと思います。

foreachを使って値を表示する

foreachを使用して、値を表示してみます。

$fruits = ["apple", "banana", "grape"];

foreach($fruits as $key => $value) {
    echo "キーは{$key}で値は{$value}";
}

結果、下記のように出力されます。

キーは0で値はapple
キーは1で値はbanana
キーは2で値はgrape

キーを使わない場合は、省略した形でも記述できます。

$fruits = ["apple", "banana", "grape"];

foreach($fruits as $value) {
    echo "値は{$value}";
}

forを使って値を表示する

forを使用して、値を表示してみます。

$fruits = ["apple", "banana", "grape"];

for ($i = 0; $i < count($fruits); $i++) {
    echo "キーは{$i}で値は{$fruits[$i]}";
}

結果はforeachと同じように出力されます。
forを使用する場合には、カウンタ($i)の初期値や、繰り返し条件、カウントアップの値などを書いておかないといけません。
初期値や条件などを間違えることも考えられるため、単純にループするだけならforeachを使う方がおすすめです。

コメント

タイトルとURLをコピーしました