とあるデータを複数の場所で使いたい時、ほとんどの場合はデータベースを使って処理すると思うのですが、DBを使うほど大げさではないデータの場合、手動で配列データを作って処理した方が楽な場合があったりします。時々使うのでメモ。
作例
ここでは、よくある住所録をイメージして解説します。
配列データを手動で作成する
データベースを使うほど大げさではない小データという前提なので、PHPの書式で配列データを手動で作成していきます。以下のような感じで、配列の中に連想配列を作っていきます。
最初はカッコが多くてややこしいかもしれませんが、外側のカッコから順番に作っていくことでカッコもややこしくならないと思います。
自分で作成した手動データなので、セキュリティも気にせずに、htmlの書式なども中に含めることができます。
<?php
//配列の中に連想配列を入れたデータを手動で作っておく
$val = array(
array(
'postnum' => '000-0000',
'address' => '東京都○○区□□1-2-3',
'name' => '山田太郎',
'mail' => '<a href="mailto:yamada@example.com">mailto:yamada@example.com</a>',
),
array(
'postnum' => '111-1111',
'address' => '東京都○○区□□3-4-5',
'name' => '鈴木一郎',
'mail' => '<a href="mailto:suzuki@example.com">mailto:suzuki@example.com</a>',
),
array(
'postnum' => '222-2222',
'address' => '東京都○○区□□6-7-8',
'name' => '佐藤次郎',
'mail' => '<a href="mailto:sato@example.com">mailto:sato@example.com</a>',
),
);//end_array
?>
foreachで回す
上記で正しい書式で配列データを作ってあれば、以下のようなforeachで表示する事ができます。
データが更新された時は、元データの内容を修正するだけでいいので便利ですよ。
<table>
<?php foreach($val as $key => $item): ?>
<tr>
<td><?php echo $item['postnum'];?></td>
<td><?php echo $item['address'];?></td>
<td><?php echo $item['name'];?></td>
<td><?php echo $item['mail'];?></td>
</tr>
<?php endforeach; ?>
</table>