📁 作成ファイル・保存場所
XAMPPがインストールされているhtdocs フォルダに以下のファイルを作成してください。
| ファイル名 | 内容 |
|---|---|
| htdocs/php-basic/05.php | PHPとHTML |
- XAMPP(Apacheが起動していること)
- XAMPPがインストールされているhtdocs フォルダに内に作成されていること
目的
- 配列(array)の基本を理解する
- foreach文の書き方に慣れる
- 配列の中の値を1つずつ使う処理が書けるようになる
チェックポイント
- 配列に値を入れて使える?
- foreachで配列の値を1つずつ取り出せる?
- 配列+HTML表示の組み合わせができる?
配列と連想配列 foreach文
配列とは?
配列(array)は、複数の値をまとめて扱えるデータの形です。
通常の配列は、値が順番に並んでいて、0番からの番号(インデックス)で管理されます。
$fruits = ['りんご', 'バナナ', 'みかん']; echo $fruits[0]; // りんご
連想配列とは?
インデックス番号の代わりに、名前(キー)で管理します。
$user = [ 'name' => 'たろう', 'age' => 25, 'email' => 'taro@example.com' ]; echo $user['name']; // たろう
名前・年齢などの「項目名」が決まっているデータに便利!
多次元配列(配列の中に配列)とは?
配列の中に、さらに配列が入っている形です。表やリストのような複雑なデータを扱えます。
$users = [ ['name' => 'たろう', 'age' => 25], ['name' => 'はなこ', 'age' => 30] ]; echo $users[1]['name']; // はなこ
表形式のデータ、複数人のユーザー情報、商品一覧など
foreach文とは?
foreach 文は、配列の中身を1つずつ取り出して処理するための繰り返し文です。
通常の配列・連想配列どちらにも使えます。
//通常の配列
$fruits = ['りんご', 'バナナ', 'みかん'];
foreach ($fruits as $fruit) {
echo $fruit . '<br>';
}
//連想配列
$user = [
'name' => 'たろう',
'age' => 25,
'email' => 'taro@example.com'
];
foreach ($user as $key => $value) {
echo "{$key}:{$value}<br>";
}
表形式のデータ、複数人のユーザー情報、商品一覧など
PHP基礎トレーニング
<?php
$colors = ['赤', '青', '緑'];
foreach ($colors as $color) {
echo $color . '<br>';
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>配列とforeachの練習</title>
</head>
<body>
<h1>色のリスト</h1>
<ul>
<?php foreach ($colors as $color): ?>
<li><?php echo $color; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
- PHPタグ内で foreach ($配列 as $変数): を使うと、HTMLの中でもループが書きやすくなります。
- foreach の終わりは endforeach; を使います。
表示確認の手順
下記のコード入力が終わったら、以下の手順で動作を確認してみましょう。
- XAMPP を起動
「Apache」が起動していることを確認します。 - ブラウザを開く
Google Chrome など、普段使っているブラウザを開きます。 - アドレスバーに入力
次のURLを直接入力して Enter を押します
http://localhost/php-basic/
- 01.php をクリック
フォルダ一覧の中に「02.php」というファイル名が見えたら、それをクリックしてください。 - ページが表示されれば成功!
「PHP基礎学習のスタートです」や「ウェブトレーニングで頑張りましょう」などの文字が表示されていれば、PHPが正しく動いています。
PHP応用トレーニング
PHPのforeach文では、中かっこ { } の代わりに「:」と「endforeach;」で囲むことができます。
この書き方は、HTMLの中で使うとコードが読みやすくなります。
複数ユーザーの連想配列 → 表(table)で表示しよう
<?php
$users = [
[
'名前' => 'たろう',
'年齢' => 25,
'性別' => '男性'
],
[
'名前' => 'はなこ',
'年齢' => 30,
'性別' => '女性'
],
[
'名前' => 'じろう',
'年齢' => 22,
'性別' => '男性'
]
];
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ユーザー一覧</title>
<style>
table {
border-collapse: collapse;
}
th, td {
border: 1px solid #999;
padding: 8px;
text-align: center;
}
th {
background-color: #f0f0f0;
}
</style>
</head>
<body>
<h1>ユーザー一覧表</h1>
<table>
<thead>
<tr>
<th>名前</th>
<th>年齢</th>
<th>性別</th>
</tr>
</thead>
<tbody>
<?php foreach ($users as $user): ?>
<tr>
<td><?php echo $user['名前']; ?></td>
<td><?php echo $user['年齢']; ?>歳</td>
<td><?php echo $user['性別']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</body>
</html>
配列の構造について
$users = [ ['名前' => 'たろう', '年齢' => 25, '性別' => '男性'], ['名前' => 'はなこ', '年齢' => 30, '性別' => '女性'], ['名前' => 'じろう', '年齢' => 22, '性別' => '男性'] ];
$usersは「多次元配列」です。- 中に複数の連想配列が入っています(1人分の情報が1つの連想配列)。
foreach ($users as $user)
- 1回目:
$userに['名前' => 'たろう', '年齢' => 25, '性別' => '男性']が入る - 2回目:
$userに['名前' => 'はなこ', '年齢' => 30, '性別' => '女性']が入る - つまり、
$userも連想配列(配列の1つ)として扱われています。
