配列に便利な関数
count関数
- 配列の要素の数を取得
count ( $配列名 )
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>配列</title> </head> <body> <?php $name[0] = '子'; $name[1] = '丑'; $name[2] = '寅'; $name[3] = '卯'; $name[4] = '辰'; $name[5] = '巳'; for ( $i = 0 ; $i < count( $name ) ; $i++ ) { print ( $name[$i] . 'ちゃん<br>' . "\n" ); } ?> </body> </html>
- 表で記述
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>配列の要素数を知る</title> </head> <body> <table border="1"> <tr><th>都市名</th></tr> <?php $city[0] = '東京'; $city[1] = '名古屋'; $city[2] = '京都'; $city[3] = '大阪'; $city[4] = '福岡'; for ( $i = 0; $i< count( $city ); $i++){ print ('<tr><td>' .$city[$i]. '</td></tr>' . "\n"); } ?> </table> </body> </html>
array関数
- 配列に値を格納する場合「添字」や「キー」を付けながら1行1行格納してきましたが、「array関数」で配列の値を一度に格納できます
<?php $data = array( '山田太郎', '鈴木花子', '田中一郎', '山本久美子', '斎藤次郎', '佐々木裕子', '佐藤秀雄' ); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>配列</title> </head> <body> 名簿には<?php print ( count( $data ) ); ?>人が登録されています。 <ol> <?php for ( $i = 0; $i < count ( $data ); $i++) { print('<li>' .$data[$i]. '</li>'); } ?> </ol> </body> </html>
<?php $data = array('山田太郎', '鈴木花子', '田中一郎', '山本久美子', '斎藤次郎', '佐々木裕子', '佐藤秀雄'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>配列</title> </head> <body> 名簿には<?php print ( count( $data ) ); ?>人が登録されています。 <ol> <?php for ( $i = count ( $data ) - 1; $i >= 0; $i--) { print('<li>' .$data[$i]. '</li>'); } ?> </ol> </body> </html>
<?php $data = array('山田太郎', '鈴木花子', '田中一郎', '山本久美子', '斎藤次郎', '佐々木裕子', '佐藤秀雄'); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>配列</title> </head> <body> 名簿には<?php print ( count( $data ) ); ?>人が登録されています。 <ol> <?php $i = 0; while ($i < count( $data ) ) { print('<li>' .$data[$i]. '</li>'); $i++; } ?> </ol> </body> </html>
<?php $data = array('山田太郎', '鈴木花子', '田中一郎', '山本久美子', '斎藤次郎', '佐々木裕子', '佐藤秀雄'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>配列(1)</title> </head> <body> 名簿には<?php print ( count( $data ) ); ?>人が登録されています。 <ol> <?php print('<li>' .$data[0]. '</li>'); print('<li>' .$data[1]. '</li>'); print('<li>' .$data[2]. '</li>'); print('<li>' .$data[3]. '</li>'); print('<li>' .$data[4]. '</li>'); print('<li>' .$data[5]. '</li>'); print('<li>' .$data[6]. '</li>'); ?> </ol> </body> </html>
foreach
キー値と繰り返し文
- 配列を扱う際、foreach文と呼ばれる特殊な繰り返し文を使うことができます
- キー用の変数と値用の変数を用意し、配列のキーと値を格納することができます
foreach($配列名 as $キー用の変数 => $値用の変数){
…
}
- 値だけを格納する場合
foreach($配列名 as $値用の変数){
…
}
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>foreach文を使う</title> </head> <body> <?php $stock[ 'みかん' ] = 80; $stock[ 'いちご' ] = 60; $stock[ 'りんご' ] = 22; $stock[ 'もも' ] = 50; $stock[ 'くり' ] = 75; ?> <table border="1"> <tr><th>商品名</th><th>在庫状況</th></tr> <?php foreach( $stock as $name => $value ) { print ('<tr><td>' .$name. '</td><td>' .$value. '個</td></tr>' . "\n"); } ?> </table> </body> </html>
添字と繰り返し文
- キーとして添字も出力できる
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>foreach文で添字を出力する</title> </head> <body> <?php $product[0] = '鉛筆'; $product[1] = '消しゴム'; $product[2] = '定規'; $product[3] = 'コンパス'; $product[4] = 'ボールペン'; ?> <table border="1"> <tr><th>番号</th><th>商品名</th></tr> <?php foreach($product as $id => $value){ print ('<tr><td>' .$id. '</td><td>' .$value. '</td></tr>' . "\n"); } ?> </table> </body> </html>