PHPの配列の要素の追加・削除を解説!初心者でもわかるarray_push, array_pop, unsetの使い方
新人
「PHPでデータを扱うのに配列を使うと聞いたのですが、どんなものなんですか?」
先輩
「配列は、複数のデータを一つの変数にまとめて管理できる仕組みだよ。例えば、複数の名前や数値をまとめて格納できるんだ。」
新人
「なるほど! じゃあ、その配列にデータを追加する方法はありますか?」
先輩
「いい質問だね。PHPには、配列にデータを追加するための array_push() という関数があるよ。詳しく説明するね!」
1. 配列とは?
PHPの配列とは、複数の値を一つの変数に格納できるデータ構造です。例えば、名前のリストや数値の一覧をまとめて管理できます。
以下の例を見てみましょう。
<?php
// 配列の作成
$fruits = ["りんご", "バナナ", "ぶどう"];
// 配列の要素を表示
print_r($fruits);
?>
Array
(
[0] => りんご
[1] => バナナ
[2] => ぶどう
)
このように、配列を使うと複数のデータを一つにまとめることができます。
2. PHPで配列の要素を追加する方法(array_push の使い方)
PHPで配列に新しい要素を追加するには、array_push() 関数を使います。
2.1 array_push() を使う方法
array_push() を使うと、配列の末尾に新しい要素を追加できます。
<?php
$fruits = ["りんご", "バナナ", "ぶどう"];
// 配列に新しい要素を追加
array_push($fruits, "みかん");
print_r($fruits);
?>
Array
(
[0] => りんご
[1] => バナナ
[2] => ぶどう
[3] => みかん
)
このように、array_push() を使うと、配列の末尾に新しい要素が追加されます。
2.2 [] を使った追加方法
実は array_push() を使わなくても、以下のように [] を使って要素を追加することもできます。
<?php
$fruits = ["りんご", "バナナ", "ぶどう"];
// 追加の別の方法
$fruits[] = "みかん";
print_r($fruits);
?>
Array
(
[0] => りんご
[1] => バナナ
[2] => ぶどう
[3] => みかん
)
どちらの方法でも、配列の末尾に新しい要素を追加できます。
2.3 複数の要素を一度に追加する
array_push() を使うと、一度に複数の要素を追加することも可能です。
<?php
$fruits = ["りんご", "バナナ", "ぶどう"];
// 複数の要素を追加
array_push($fruits, "みかん", "スイカ");
print_r($fruits);
?>
Array
(
[0] => りんご
[1] => バナナ
[2] => ぶどう
[3] => みかん
[4] => スイカ
)
このように、一度に複数の要素を追加したい場合は array_push() が便利です。
次のセクションでは、配列の要素を削除する方法(array_pop() や unset())について詳しく説明します。
3. PHPで配列の要素を削除する方法(array_pop の使い方)
PHPで配列の末尾の要素を削除するには、array_pop() 関数を使います。
3.1 array_pop() の基本的な使い方
array_pop() を使うと、配列の最後の要素を削除し、その削除した値を返します。
<?php
$fruits = ["りんご", "バナナ", "ぶどう", "みかん"];
// 配列の末尾の要素を削除
$removed_fruit = array_pop($fruits);
print_r($fruits);
echo "削除された要素: " . $removed_fruit . "\n";
?>
Array
(
[0] => りんご
[1] => バナナ
[2] => ぶどう
)
削除された要素: みかん
このように、array_pop() を使うと、配列の最後の要素を簡単に削除できます。
3.2 空の配列で array_pop() を実行すると?
もし、空の配列で array_pop() を実行すると、何も削除するものがないため、null が返されます。
<?php
$empty_array = [];
$result = array_pop($empty_array);
var_dump($result);
?>
NULL
エラーにはならないので、安心して使用できますが、値がnullにならないように、事前に要素数を確認すると安全です。
4. PHPで特定の要素を削除する方法(unset の使い方)
配列の中から特定の要素を削除するには、unset() を使います。
4.1 unset() を使って特定の要素を削除
unset() を使うと、指定したインデックスの要素を削除できます。
<?php
$fruits = ["りんご", "バナナ", "ぶどう", "みかん"];
// 配列の2番目の要素を削除(0から数える)
unset($fruits[1]);
print_r($fruits);
?>
Array
(
[0] => りんご
[2] => ぶどう
[3] => みかん
)
注意点として、要素を削除してもインデックスの番号はそのままなので、配列の順番が崩れます。
4.2 unset() で連続する要素を削除
複数の要素を削除する場合は、unset() を複数回使うことができます。
<?php
$fruits = ["りんご", "バナナ", "ぶどう", "みかん"];
// 1番目と3番目の要素を削除
unset($fruits[1], $fruits[3]);
print_r($fruits);
?>
Array
(
[0] => りんご
[2] => ぶどう
)
このように、複数の要素を削除すると、インデックスの並びが飛び飛びになります。
4.3 インデックスを振り直す(array_values() の使い方)
unset() を使って要素を削除すると、インデックスがずれるので、array_values() を使ってインデックスを振り直すことができます。
<?php
$fruits = ["りんご", "バナナ", "ぶどう", "みかん"];
unset($fruits[1], $fruits[3]);
// インデックスを振り直す
$fruits = array_values($fruits);
print_r($fruits);
?>
Array
(
[0] => りんご
[1] => ぶどう
)
こうすることで、インデックスが綺麗に振り直され、扱いやすくなります。
5. 配列の長さを取得する方法(count の使い方)
配列の要素数を取得するには、count() 関数を使います。
5.1 count() の基本的な使い方
配列の要素数を調べるには、count() を使います。
<?php
$fruits = ["りんご", "バナナ", "ぶどう", "みかん"];
echo "配列の要素数: " . count($fruits) . "\n";
?>
配列の要素数: 4
このように、配列の要素数を簡単に取得できます。
5.2 空の配列で count() を使う
もし空の配列で count() を実行すると、0 が返ります。
<?php
$empty_array = [];
echo "配列の要素数: " . count($empty_array) . "\n";
?>
配列の要素数: 0
配列が空かどうかを確認する場合にも、count() を活用できます。
次のセクションでは、配列の操作時の注意点や、配列の応用的な使い方について解説していきます。
6. 配列を操作する際の注意点(空の配列、未定義のキーへのアクセス)
PHPで配列を扱う際には、注意すべきポイントがいくつかあります。特に「空の配列」や「未定義のキー」へのアクセスには気をつける必要があります。
6.1 空の配列を処理する際の注意点
配列が空である場合、要素を削除したり取得しようとすると予期しない動作が発生することがあります。空の配列を扱う前には、count() を使って要素数を確認するのが安全です。
<?php
$fruits = [];
// 配列が空かチェック
if (count($fruits) == 0) {
echo "配列が空です。\n";
} else {
echo "配列の要素数: " . count($fruits) . "\n";
}
?>
配列が空です。
このように、配列が空であるかを確認することで、エラーを未然に防ぐことができます。
6.2 未定義のキーにアクセスするとどうなる?
連想配列の場合、存在しないキーにアクセスすると Warning が発生することがあります。そのため、isset() や array_key_exists() を使ってチェックすると安全です。
<?php
$user = [
"name" => "田中",
"age" => 30
];
// 存在しないキーをチェック
if (isset($user["email"])) {
echo "メールアドレス: " . $user["email"] . "\n";
} else {
echo "メールアドレスは設定されていません。\n";
}
?>
メールアドレスは設定されていません。
このように、キーが存在するかをチェックしてから値を取得することで、予期しないエラーを防ぐことができます。
7. ソートと結合を組み合わせた配列操作の例
PHPでは、配列をソートしたり、別の配列と結合することができます。ここでは、配列をソートした後に結合する例を紹介します。
7.1 配列をソートする
配列を昇順(小さい順)に並び替えるには sort() を使います。
<?php
$numbers = [8, 3, 5, 1, 7];
// 昇順にソート
sort($numbers);
print_r($numbers);
?>
Array
(
[0] => 1
[1] => 3
[2] => 5
[3] => 7
[4] => 8
)
7.2 配列を結合する
2つの配列を結合するには array_merge() を使います。
<?php
$fruits1 = ["りんご", "バナナ"];
$fruits2 = ["ぶどう", "みかん"];
// 配列を結合
$all_fruits = array_merge($fruits1, $fruits2);
print_r($all_fruits);
?>
Array
(
[0] => りんご
[1] => バナナ
[2] => ぶどう
[3] => みかん
)
7.3 ソートと結合を組み合わせる
結合した配列をソートして、順番を整えることも可能です。
<?php
$fruits1 = ["りんご", "バナナ"];
$fruits2 = ["ぶどう", "みかん"];
// 配列を結合
$all_fruits = array_merge($fruits1, $fruits2);
// ソートを適用
sort($all_fruits);
print_r($all_fruits);
?>
Array
(
[0] => いちご
[1] => うめ
[2] => ぶどう
[3] => みかん
)
このように、配列を結合してからソートすることで、データの順番を整えることができます。
8. PHP の配列操作を学ぶためのおすすめの方法
PHPの配列をしっかり学ぶためには、以下の方法を活用するのがおすすめです。
8.1 公式ドキュメントを読む
PHPの公式ドキュメントには、配列の基本から応用まで詳しく解説されています。
8.2 サンプルコードを実際に動かす
学習のためには、実際に手を動かしてコードを試すことが重要です。pleiades の環境を使って、配列の追加・削除・ソートなどを試してみましょう。
8.3 学習サイトや動画を活用する
初心者向けの学習サイトやYouTube動画を活用すると、より分かりやすく学ぶことができます。
8.4 小さなプロジェクトを作る
学んだことを活かすには、小さなプロジェクトを作ってみるのが効果的です。例えば、簡単なToDoリストやショッピングカートを作ることで、配列の活用方法を理解しやすくなります。
PHPの配列は、データを扱う上で非常に重要な概念です。基本的な操作から応用までしっかり学び、実践で使えるスキルを身につけましょう!
まとめ
PHPにおける配列操作は、Webアプリケーション開発において極めて重要な基本技術です。この記事では、配列の基本的な構造から始まり、要素の追加・削除・結合・ソート・長さの取得といった一連の操作について、PHPの標準関数を使って具体的なサンプルコードを交えて解説しました。
特に、array_push() や [] による要素追加、array_pop() や unset() による削除、count() を使った要素数の確認、さらには array_merge() や sort() を使った応用的な処理まで、PHP配列に関する幅広い機能を学びました。
初心者がつまずきやすいポイントとして、空の配列や未定義キーへのアクセスによるエラーがありますが、count() や isset()、array_key_exists() などを活用することで、安全なコードを書くことが可能になります。
また、配列の要素を削除した後にインデックスが崩れることにも注意が必要です。この場合には array_values() を使ってインデックスを再構成するテクニックも紹介しました。
実務では、データの追加・削除・検索・整列など、配列を自在に操作する能力が求められます。今回学んだ各種関数とテクニックは、日常的なPHPプログラミングに直結する知識であり、繰り返し手を動かして実践することで、しっかりと身につけていきましょう。
配列操作のサンプル:配列から値を削除してソートする
<?php
$colors = ["赤", "青", "緑", "黄"];
// 不要な要素を削除
unset($colors[2]);
// インデックスを振り直す
$colors = array_values($colors);
// ソートする
sort($colors);
print_r($colors);
?>
Array
(
[0] => 赤
[1] => 青
[2] => 黄
)
新人
「配列ってこんなに便利だったんですね!追加したり削除したり、簡単にできるのが驚きです。」
先輩
「そうなんだ。PHPでは、配列を操作する関数が豊富だから、使い方を覚えておくとすごく役に立つよ。」
新人
「array_push() や array_pop() はすぐに覚えられそうですし、unset() と array_values() の組み合わせも実務で役立ちそうですね。」
先輩
「その通り。あと、空の配列や未定義のキーを扱うときは、isset() や count() を使って事前にチェックするのが安全な書き方だよ。」
新人
「配列を結合したり、ソートしたりといった操作も覚えておきたいです。ToDoリストやカート機能とかに活用できそう!」
先輩
「その意気だね!配列を自在に扱えるようになると、PHPでできることがぐっと広がるよ。今日の内容を何度も試して、しっかり身につけていこう!」