PHPの配列とは
- 配列とは、変数に背番号のようなものを付けて拡張し、複数のデータを扱えるようにしたもの
- 配列はデータを「キー/値」のペアにしている
- 「キー/値」のペアになっているデータを配列の要素と言う
- 配列には順序があり要素が追加された順に並んでいる
- 配列にはすべてのデータ型の値を格納することが出来る
配列の基本的な書き方
基本形(リテラル)では1つの変数を定義して、その変数に対して値を代入する。
PHPの配列(Array)の場合は、わかりやすく言うとこの変数の値が複数格納できるものになる。
$fruits = array('apple', 'orange', 'grape');
もしくは下記のような書き方もできる。
最近だとこちらの方が一般的か。
$fruits = ['apple', 'orange', 'grape'];
配列の出力
出力する際は以下のように記述をします。
$fruits = ['apple', 'orange', 'grape'];
// var_dump の場合
var_dump($fruits);
// -> array(3) {
[0]=>
string(5) "apple"
[1]=>
string(6) "orange"
[2]=>
string(5) "grape"
}
// print_r の場合
print_r($fruits);
// -> Array
(
[0] => apple
[1] => orange
[2] => grape
)
また1つ目の要素(apple)を取り出したいという場合は、
echo $fruits[0];
というように書ける。
- 1つ目の要素というのは配列で言うところの0番目の要素なので、$fruitsの0と指定をしてあげる。
連想配列
先程の通常の配列以外にも連想配列という形で配列を作ることも可能。
連想配列は以下のように書ける。
$fruits = ['りんご' => 'apple', 'みかん' => 'orange', 'ぶどう' => 'grape'];
連想配列の中身を見たい場合は通常の配列同様var_dump
やprint_r
を使ってあげれば良い
$fruits = ['りんご' => 'apple', 'みかん' => 'orange', 'ぶどう' => 'grape'];
var_dump($fruits);
// array(3) {
// ["りんご"]=>
// string(5) "apple"
// ["みかん"]=>
// string(6) "orange"
// ["ぶどう"]=>
// string(5) "grape"
// }
print_r($fruits);
// Array
// (
// [りんご] => apple
// [みかん] => orange
// [ぶどう] => grape
// )
これもまたecho
で要素を抜き出したい場合は、
echo $fruits['りんご'];
// apple
としてあげれば良い。
配列と連想配列の取り出し方について(つまづきポイント)
通常の配列の場合は数字を指定してあげたが、連想配列の場合は今回りんごと記述した。
ここは難しく考える必要はなく、どちらもキーを指定してあげただけ
。
通常の配列では、記述では見えないことがほとんどだが、バリュー以外にキーも存在している。
つまり下記のような配列の場合、
$fruits = ['apple', 'orange', 'grape'];
実際の動きとしては下記のようになっている。
$fruits = [0 => 'apple', 1 => 'orange', 2 => 'grape'];
それぞれの要素には必ずキーとバリューが存在している。
そして要素を抜き出したいのであればキーを指定してあげる必要がある
。
そのため、例えばapple
を取り出したい場合、通常の配列だと0を指定してあげる。
連想配列の場合は、先程のコードだとりんごを指定してあげることとなる。
多次元配列
多次元配列では配列の中にさらに配列が入っているもののことを言う。
$sports = [
['soccer', 'baseball', 'basketball'],
['zyudo', 'kendo', 'dance']
];
print_r($sports);
// Array
// (
// [0] => Array
// (
// [0] => soccer
// [1] => baseball
// [2] => basketball
// )
// [1] => Array
// (
// [0] => zyudo
// [1] => kendo
// [2] => dance
// )
// )
また多次元配列でも中身を連想配列にすることも可能。
$sports = [
'world' => ['サッカー' => 'soccer', '野球' => 'baseball', 'バスケ' => 'basketball'],
'japan' => ['柔道' => 'zyudo', '剣道' => 'kendo', 'ダンス' => 'dance']
];
print_r($sports);
// Array
// (
// [world] => Array
// (
// [サッカー] => soccer
// [野球] => baseball
// [バスケ] => basketball
// )
// [japan] => Array
// (
// [柔道] => zyudo
// [剣道] => kendo
// [ダンス] => dance
// )
// )
echo で取り出したい場合は先程同様キーを指定してあげる。
$sports = [
['soccer', 'baseball', 'basketball'],
['zyudo', 'kendo', 'dance']
];
echo $sports[0][1];
// -> baseball
$sports = [
'world' => ['サッカー' => 'soccer', '野球' => 'baseball', 'バスケ' => 'basketball'],
'japan' => ['柔道' => 'zyudo', '剣道' => 'kendo', 'ダンス' => 'dance']
];
echo $sports['japan']['剣道'];
// -> kendo
以上