とりあえずの備忘録

主にパソコンやインターネットに関するメモ

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) とする。
紹介してきた処理は連想配列でやっても動作する。