LLaravel Bootcamp

Day 0Laravelを読むための最低限PHP

配列と連想配列 — Laravelのデータの正体

順番で並べる配列と、キーと値で持つ連想配列。foreachでの繰り返し、多次元配列、[]短縮記法を理解する。

配列とは「たくさんの値をまとめて入れる箱」

変数が「値を1つ入れる箱」なら、配列は「値をいくつも並べて入れられる箱」です。買い物リストのように、複数の値を1つの名前でまとめて持てます。PHPでは配列を角かっこ「[]」で作ります(この「[]」を使う書き方を「短縮記法」と呼びます。昔は array() と書きましたが、今はほぼ [] です)。たとえば「$fruits = ["りんご", "みかん"];」とすると、$fruits[0] が「りんご」になります。番号(添字)が1ではなく0から始まる点に注意してください。

連想配列 — 「キー => 値」で持つ

ここがこのレッスンの主役です。連想配列(れんそうはいれつ)は、値に「番号」ではなく「名前(キー)」を付けて持つ配列です。キーと値は矢印のような記号「=>」で結びます。「name というキーには 田中 という値」という具合です。辞書やラベル付きの引き出しをイメージしてください。

PHP
<?php

// 連想配列:キー => 値 の組を並べる
$user = [
    "name" => "田中",
    "age"  => 30,
    "admin" => true,
];

echo $user["name"]; // → 田中(キーを指定して値を取り出す)
echo $user["age"];  // → 30
連想配列。キー(name, age...)を指定して値を取り出す。

なぜ連想配列が超重要なのか

Laravelでは、設定・データベースから取った1件のデータ・フォームで送られてきた入力値・APIのやり取りなど、あらゆる「まとまったデータ」が連想配列(または連想配列のように振る舞うオブジェクト)で表されます。つまり連想配列の「キーで値を取り出す」感覚が分かっていないと、Laravelのコードはほとんど読めません。逆にここさえ掴めば一気に読めるようになります。

foreach — 配列を1個ずつ取り出して繰り返す

配列の中身を1つずつ取り出して処理したいときは「foreach」を使います。読み方は「フォーイーチ」。「配列の要素それぞれについて(for each)、こうする」という意味です。連想配列では「キーと値の両方」を一度に受け取れます。

PHP
<?php

$user = ["name" => "田中", "age" => 30];

// $key にキー、$value に値が1組ずつ入り、中の処理が繰り返される
foreach ($user as $key => $value) {
    echo "$key$value です\n";
}
// → name は 田中 です
// → age は 30 です

// 値だけで十分なら $key => は省略できる
$fruits = ["りんご", "みかん"];
foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}
foreach ($配列 as $キー => $値) で、要素を1組ずつ取り出して繰り返す。

多次元配列 — 配列の中に配列

配列の要素として、さらに配列を入れることもできます。これを多次元配列と呼びます。たとえば「ユーザーの一覧(=ユーザーという連想配列が複数並んだ配列)」はまさにこの形です。DBから複数件のデータを取ってくると、たいていこの形になり、foreach で1件ずつ取り出して、さらにキーで中の値にアクセスします。

PHP
<?php

// 連想配列が3つ並んだ配列(= ユーザー一覧)
$users = [
    ["name" => "田中", "age" => 30],
    ["name" => "鈴木", "age" => 25],
    ["name" => "佐藤", "age" => 40],
];

foreach ($users as $user) {
    // $user は1件分の連想配列。キーで中の値を取り出す
    echo $user["name"] . "(" . $user["age"] . "歳)\n";
}
多次元配列。foreachで1件ずつ取り出し、さらにキーで中の値にアクセスする。

Laravelではこう出てくる

Laravelのビューに渡すデータや設定ファイルは、まさにこの連想配列です。下は設定ファイル(config)の一部で、「キー => 値」がそのまま使われています。今日の連想配列が読めれば、Laravelの設定も読めます。

PHP
<?php

// Laravelの設定ファイル config/app.php の雰囲気
return [
    "name"     => "My App",
    "env"      => "production",
    "timezone" => "Asia/Tokyo",
    "locale"   => "ja",
    // 「aliases」キーの値はさらに連想配列(多次元)
    "aliases" => [
        "Route" => "Illuminate\\Support\\Facades\\Route",
        "Log"   => "Illuminate\\Support\\Facades\\Log",
    ],
];
Laravelの設定はまるごと連想配列。name や timezone はスカラー値、「aliases」キーの値はさらに連想配列(多次元)。

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

連想配列でキーと値を結びつけるのに使う記号はどれか。

Q2

「$user = ["name" => "田中"];」から「田中」を取り出す正しい書き方はどれか。

Q3

なぜ連想配列を理解することがLaravelを読むうえで特に重要なのか説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。