配列に便利な関数

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>