09配列
PHPでは、配列は複数の値を1つの変数に格納できるデータ構造のことです。
配列を使うと、一つのまとまりとして管理できるので、コードがスッキリします。
ではPHPの配列について学んでいきましょう!
1.インデックス配列
<?php
$fruits = ['リンゴ', 'バナナ', 'オレンジ'];インデックス配列はシンプルな配列です。
上記のように記述することで、$fruitsという変数の中に、「リンゴ」「バナナ」「オレンジ」の情報を持つことができます。
配列を作成する方法としてはarray()で作成するか、[](角括弧)で作成する方法があります。
※PHP5.4以降では配列の短縮構文が追加され、array()の代わりに[](角括弧)が使えるようになり、[]を使用することが多くなりました。
配列へのアクセス方法
配列へのアクセスは以下のように記述することでアクセスすることが可能です。
$fruits[0] // リンゴ
$fruits[2] // オレンジ変数+[インデックス番号]によりアクセスが可能です。
インデックス番号は0から自動的に割り振られる数値です。
今回の例では、リンゴが0、バナナが1、オレンジが2というインデックス番号が割り振られているため、$fruits[0]で$fruits配列のインデックス番号が0の値という意味になります。
また、追加する場合は以下のように記述することで追加することができます。
$fruits[] = 'パイナップル' // 配列に追加
print_r($fruits);
/* 結果:
Array
(
[0] => リンゴ
[1] => バナナ
[2] => オレンジ
[3] => パイナップル
)
*/配列の便利さ
例: 10個の点数を管理する場合
配列を使わない場合:
<?php
$score1 = 80;
$score2 = 90;
$score3 = 75;
// …10個分の変数が必要!配列を使った場合:
<?php
$scores = [80, 90, 75];かなりすっきりしましたね。
ただし、これだとそれぞれの点数が何を表しているかがわかりにくいです。
PHPでは、それぞれの値に名前を付けられる連想配列という配列も存在します。
2.連想配列
連想配列は、各要素に名前(キー)を付けることができる配列です。
これにより、データの意味をわかりやすく管理できます。
例: 生徒の名前と点数
<?php
$studentScores = [
"太郎" => 80,
"花子" => 90,
"次郎" => 75
];
先ほど例で示した数値に、名前を付けることができす。
これでそれぞれの数値が誰の点数かがぱっと見でわかるようになりました。
連想配列の追加方法
$studentScores['三郎'] = 70上記のように記述することで連想配列に追加することができます。
ただし、注意が必要なのが、$studentScores[‘太郎’] = 70とすると、すでに太郎のキーを持った値が$studentScoresには存在するので80という値が70で上書きされてしまいます。
3.多次元配列
多次元配列は、「配列の中に配列を持つ構造」です。リストや表形式のデータを管理するのに便利です。
例: クラス別の生徒と点数
<?php
$classes = [
"クラスA" => [
"太郎" => 80,
"花子" => 90
],
"クラスB" => [
"次郎" => 75,
"三郎" => 85
]
];
// クラスAの花子の点数を取得
echo $classes["クラスA"]["花子"]; // 出力: 90組み込み関数
PHPには多くの配列操作関数があります。代表的なものをいくつか紹介します。
| 関数 | 説明 | 例 |
|---|---|---|
| 関数 | 説明 | 例 |
array_push() | 配列の末尾に要素を追加 | array_push($array, "new") |
array_pop() | 配列の末尾の要素を削除し返す | $value = array_pop($array) |
array_shift() | 配列の最初の要素を削除し返す | $value = array_shift($array) |
array_unshift() | 配列の最初に要素を追加 | array_unshift($array, "new") |
in_array() | 指定した値が配列に存在するか確認 | in_array("Apple", $array) → true |
array_keys() | 配列のキーを全て取得 | array_keys($array) |
array_values() | 配列の値を全て取得 | array_values($array) |
array_map() | 配列の各要素に関数を適用 | array_map('strtoupper', $array) |
コメントを残す