count
そふぃのPHP入門 >> PHP関数リファレンス >> 配列関数 >> count

count

解説 配列の要素数を数える
書式 int count( mixed var [, int mode ] )
int count( mixed 配列 [, int モード ] )
引数 var 配列
mode 再帰的にカウントするかどうかのモード
返値 配列の要素数

PHPマニュアル:count count()

count()関数:概略解説

count()は指定した配列の要素数を数える関数です。

count()関数:返り値解説

配列の要素数を返します。指定した変数が配列でない場合は1を返します。

count()関数:引数解説

var配列
要素数を知りたい変数(配列)を指定します。
modeモード
配列を再帰的にカウントするかどうかのオプション引数です。このモードをCOUNT_RECURSIVE(または1)にセットした場合は再帰的にカウントします。デフォルトでは0(再帰的にカウントしない)に設定されています。

count()関数:補足解説

第2引数のmodeはPHP4.2.0で追加されました。

count()関数:注意

count()は、キー(添え字)の最大値を返すわけではなく、要素の数を返しますので注意して下さい。

参考 要素数を返す

参考関数

  • array() ---- 配列を生成する
  • sizeof() ---- count()関数のエイリアス
  • isset() ---- 変数がセットされているどうか調べる

サンプルスクリプト

簡単な利用例

  1. <?php
  2. $a[] = "10";
  3. $a[] = "25";
  4. $a[] = "8";
  5. print count( $a ); // 配列の要素数を出力
  6. ?>

出力結果

3

要素数を返す

  1. <?php
  2. $arr[5] = "28";
  3. $arr[20] = "15";
  4. $arr[50] = "6";
  5.  
  6. // キーの最大値ではなく要素数を返す
  7. print count( $arr );
  8. ?>

出力結果

3

COUNT_RECURSIVEサンプル

  1. <?php
  2. $food["fruits"][] = "りんご";
  3. $food["fruits"][] = "オレンジ";
  4. $food["fruits"][] = "バナナ";
  5. $food["vegetable"][] = "トマト";
  6. $food["vegetable"][] = "なす";
  7. $food["vegetable"][] = "にんじん";
  8.  
  9. echo "通常のカウント:".count( $food )."<br />\n";
  10. echo "再帰的カウント:".count( $food, COUNT_RECURSIVE );
  11. ?>

出力結果

通常のカウント:2
再帰的カウント:8

for文で配列をすべて出力

  1. <?php
  2. $animal[] = "";
  3. $animal[] = "";
  4. $animal[] = "鹿";
  5.  
  6. // 配列の値を改行しながらすべて出力
  7. for( $i = 0; $i < count( $animal ); $i++ ){
  8.     echo $animal[$i]."<br />\n";
  9. }
  10. ?>

出力結果



鹿

for文は配列のキーが連続で隙間なく埋まっている場合にのみ使えます。そうでない場合はforeach文を使って下さい。

引数の状態による返り値の違い

  1. <?php
  2. print "未定義の変数の場合:".count( $未定義の変数 )."<br />\n";
  3. print "未定義の配列の場合:".count( array() )."<br />\n";
  4. print "文字列の場合:".count( "文字列" );
  5. ?>

出力結果

未定義の変数の場合:0
未定義の配列の場合:0
文字列の場合:1