PHPの配列操作「追加、変更、削除」について解説します。
プログラミング基礎では、配列操作は重要な部分となりますので頑張って身につけましょう!
まずは「どんなことができるのか」の感覚をつかんでもらえればOKですので、
さらっと読んでいただければと思います。
今回は配列の操作について解説しますので、連想配列の操作については次回解説します。
それでは行きましょう!
目次
var_dumpの確認方法
まず始めにですが、配列をvar_dump関数で確認します。
var_dump関数は、そのままブラウザに表示すると改行されてなくて分かりにくいので、ブラウザの「ページのソースを表示」で確認します。
ブラウザの画面内を右クリックして「ページのソースを表示」で確認してください。


確認できましか?
それでは配列の追加に進みましょう!
配列に要素を追加
array_push() で末尾に追加
配列の末尾に要素を追加するには、array_push() 関数を使用します。
ソースコードで書くと次のようになります。
<?php $arr = array("バナナ", "イチゴ"); // 末尾に追加 array_push($arr, "すいか"); var_dump($arr); ?>
実行結果:

「バナナ、イチゴ」が入った配列の末尾に「すいか」が追加されました。
ちなみにですが、array_push() は可変引数なので、引数2以降は「array_push($arr, “すいか”, “メロン”, “みかん”);」のように書いて、まとめて追加ができます。
[] で末尾に追加
[] を使ってarray_push() と同じく配列の末尾に要素を追加できます。
<?php $arr = array("バナナ", "イチゴ"); // 末尾に追加 $arr[] = "すいか"; var_dump($arr); ?>
結果の画像は省略しますが「array_push() で末尾に追加」と同じ結果になります。
1つずつしか追加ができないので、他にも追加するときは「$arr[] = “メロン”;」の行を追加してあげましょう。
array_unshift() で先頭に追加
配列の先頭に要素を追加するには、array_unshift() 関数を使用します。
array_push() 関数とは逆ですね。
<?php $arr = array("バナナ", "イチゴ"); // 先頭に追加 array_unshift($arr, "すいか"); var_dump($arr); ?>
実行結果:

array_unshift() も可変引数でまとめて要素の追加ができます。
配列の値を変更
指定インデックスの値を変更
配列の値を変更するときは、[]の中にインデックス番号を指定して変更します。
次のソースコードでは、インデックス番号[1]の「イチゴ」を「メロン」に値を変更しています。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // イチゴ から メロン に値を変更する $arr[1] = "メロン"; var_dump($arr); ?>
実行結果:

ループ中の条件で値を変更
配列をループしながら条件に一致した場合、値が変更されるようにソースコードを書いてみます。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // 配列をループして要素の値が「イチゴ」なら「メロン」に値を書き換える for ($i=0; $i < count($arr); $i++) { if ($arr[$i] == "イチゴ") { $arr[$i] = "メロン"; } } var_dump($arr); ?>
「指定インデックスの値を変更」と同じ結果で、「イチゴ」が「メロン」になりました。
配列の変更する場合はこのようにループしながらの使い方が多いです。
配列の要素を削除
array_pop() で末尾を削除
配列の末尾の要素を削除するには、array_pop() 関数を使用します。
array_pop() 関数が呼ばれるたびに1つずつ要素が削除されます。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // 末尾を削除 array_pop($arr); var_dump($arr); ?>
実行結果:

array_shift() で先頭を削除
配列の先頭の要素を削除するには、array_shift() 関数を使用します。
array_shift() 関数もarray_pop() と同様に1つずつ要素が削除されます。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // 先頭を削除 array_shift($arr); var_dump($arr); ?>
実行結果:

unset() で指定の要素を削除
unset() 関数にインデックス番号を指定した配列をセットして呼ぶと、指定の要素を削除することができます。
ただし、削除した部分は抜け落ちたままとなり配列は詰まってくれないので、この後の配列の扱いに注意が必要です。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // イチゴを削除 unset($arr[1]); var_dump($arr); ?>
実行結果:

array_values() で配列を詰める
では、配列を詰めるにはどうするのかと言いますと、
array_values() 関数を使用すると配列を詰めることができます。
この方法であれば配列が詰まった状態の削除ができます。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // イチゴを削除 unset($arr[1]); // 配列を詰める $arr = array_values($arr); var_dump($arr); ?>
実行結果:

上手く要素を削除できて、配列が詰めることができました。
unset() で配列のすべてを削除
unset() を使うと変数を破棄することができます。
配列に限らずですが、変数であればstring型でもint型でも使用できます。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // 配列の変数を削除 unset($arr); var_dump($arr); ?>
実行結果:

このソースコードでは、6行目でunset() して8行目でvar_dump() で変数の中身を表示しようとしています。
ですが、PHPの警告で「8行目で変数宣言されてませんよ」とNoticeエラーが表示されます。
なので、unset() した後は変数を再度宣言するか、使わないようにするなど気をつける必要があります。
まとめ
PHPの配列について次の内容で解説しました。
- 配列の要素の追加(末尾、先頭)
- 配列の値を変更(指定、ループ)
- 配列の要素の削除(末尾、先頭、指定、すべて)
配列の追加・変更・削除について色々と解説しましたが、
まずは「こんなことができるんだ」の感じで頭の片隅に置いといて、
実際に必要になったとき、この記事を見ていただければ幸いです。
プログラミング学習を挫折せずに続けて成功できる人は
- 「目的目標を明確にすること」
- 「質問・相談できる環境を作ること」
- 「自己解決スキルを身に着けること」
この3つを大切にしてると思います。
ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。
-
テックキャンプ
本気でIT業界に転職したい方におすすめです。
転職できなかったら全額返金があります。 -
DMM WEBCAMP
国から認定されているスクールです。
やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。 -
TechAcademy
1週間の無料体験があります。
気軽にスクールを体験したい方向けです。