PHP 配列のループ処理をする
配列のループ処理で使う各機能のメモ。
list()で配列の値を複数の変数に代入する
<?php
//配列を作成
$member_info = array('yamada', 'taro@hoge.com', '28');
//すべての要素を取得
list($name, $email, $age) = $member_info;
echo $name . ', ' . $email . ', ' . $age . '<br />';
//1番目と3番目の要素を取得
list($name, , $age) = $member_info;
echo $name . ', ' . $age . '<br />';
?>
「出力結果」
yamada, taro@hoge.com, 28
yamada, 28
each()で配列のキーと値を取得する
<?php
//配列を作成
$userlist = array('sato', 'tanaka', 'suzuki');
//配列のキーと値を取得
$user1 = each($userlist);
$user2 = each($userlist);
//出力
print_r($user1);
echo '<br />';
print_r($user2);
echo '<br />';
//list()を使ってキーと値を取得
list($key, $value) = each($userlist);
echo $key . ', ' . $value . '<br />';
?>
「出力結果」
Array ( [1] => sato [value] => sato [0] => 0 [key] => 0 )
Array ( [1] => tanaka [value] => tanaka [0] => 1 [key] => 1 )
2, suzuki
each()実行後、配列の内部ポインタは次の要素へ移動する。内部ポインタが最終要素を超えるとFALSEを返す。配列の内部ポインタを先頭に移動するには、reset()を使用する。
list()とeach()を使って配列のループ処理をする
<?php
$userlist = array('sato', 'tanaka', 'suzuki');
while ( list($key, $val) = each($userlist) ) {
echo $key . ', ' . $val . '<br />';
}
?>
「出力結果」
0, sato
1, tanaka
2, suzuki
foreach文を使ったやり方もある
foreach文を使って配列のループ処理をする
<?php
$userlist = array('sato', 'tanaka', 'suzuki');
foreach ($userlist as $key => $val) {
echo $key . ', ' . $val . '<br />';
}
?>
値だけを取り出す場合は、foreach($userlist as $val) とする。
紹介してきた処理は連想配列でやっても動作する。