配列 関数
PHP Manual

count

(PHP 4, PHP 5)

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

説明

int count ( mixed $var [, int $mode = COUNT_NORMAL ] )

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

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

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

パラメータ

var

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

mode

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

警告

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

返り値

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

警告

count() は、セットされていない変数に関して 0 を返しますが、変数が空の配列として初期化されている場合にも 0 を返します。 ある変数がセットされているかどうかを調べるには、 isset() を使用してください。

変更履歴

バージョン 説明
4.2.0 オプションのパラメータ mode が追加されました。

例1 count() の例

<?php
$a
[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result count($b);
// $result == 3

$result count(null);
// $result == 0

$result count(false);
// $result == 1
?>

例2 再帰的な count() の例

<?php
$food 
= array('fruits' => array('orange''banana''apple'),
              
'veggie' => array('carrot''collard''pea'));

// 再帰的なカウント
echo count($foodCOUNT_RECURSIVE); // output 8

// 通常のカウント
echo count($food); // output 2

?>

参考


配列 関数
PHP Manual