Php/docs/function.count

提供:Dev Guides
< Php
移動先:案内検索

count

(PHP 4, PHP 5, PHP 7)

count変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える


説明

count ( Countable|array $value [, int $mode = COUNT_NORMAL ] ) : int

変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数えます。

オブジェクトに対して、もし SPL がインストールされている場合、インターフェイス Countable を実装することで count() にフックすることができます。このインターフェイスには 1 つのメソッド Countable::count() があり、count() 関数に対する値を返します。

配列の実装やPHPでの使用法に関する詳細な説明については、マニュアルの 配列のセクションを参照ください。


パラメータ

value

配列あるいは Countable オブジェクト。

mode

オプションのmode 引数が COUNT_RECURSIVE (または 1) にセットされた場合、count() は再帰的に配列をカウントします。 これは多次元配列の全ての要素をカウントするといった場合に特に有効です。

警告

count() は、再帰を検出して無限ループを回避するようになっています。 しかしその場合 (配列の中に自分自身が複数回登場する場合) は毎回 E_WARNING を発行し、期待する結果より大きい数を返します。


返り値

value に含まれる要素の数を返します。 もしパラメータが配列でもなく Countable インターフェイスを 実装したオブジェクトでもない場合、1 が返されます。 ひとつ例外があり、valuenull の場合、 0 が返されます。


例1 count() の例

<?php$a[0] = 1;$a[1] = 3;$a[2] = 5;var_dump(count($a));$b[0]  = 7;$b[5]  = 9;$b[10] = 11;var_dump(count($b));var_dump(count(null));var_dump(count(false));?>

上の例の出力は以下となります。


int(3)
int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 // as of PHP 7.2
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 // as of PHP 7.2
int(1)

例2 再帰的な count() の例

<?php$food = array('fruits' => array('orange', 'banana', 'apple'),              'veggie' => array('carrot', 'collard', 'pea'));// 再帰的なカウントecho count($food, COUNT_RECURSIVE); // output 8// 通常のカウントecho count($food); // output 2?>

変更履歴

バージョン 説明
7.2.0 count() 関数は、

value パラメータに、 不正な Countable 型を渡した場合に 警告を発生させるようになりました。


参考

  • is_array() - 変数が配列かどうかを検査する
  • isset() - 変数が宣言されていること、そして null とは異なることを検査する
  • empty() - 変数が空であるかどうかを検査する
  • strlen() - 文字列の長さを得る
  • is_countable() - 引数が、数えられる値かどうかを調べる