计算数组中的单元数目,或对象中的属性个数 count

(PHP 4, PHP 5, PHP 7)

count — 计算数组中的单元数目,或对象中的属性个数

说明

count(mixed $array_or_countable [, int $mode= count_normal ]): int

统计出数组里的所有元素的数量,或者对象里的东西。

对于对象,如果安装了SPL,可以通过实现Countable接口对count()挂钩(hook) 。该接口只有一个方法Countable::count(),此方法为count()函数返回值。

关于 PHP 中如何实现和使用数组可以参考手册中数组章节中的详细描述。

参数

array_or_countable

数组或者Countable对象。

mode

如果可选的mode参数设为COUNT_RECURSIVE(或 1),count()将递归地对数组计数。对计算多维数组的所有单元尤其有用。

count()能检测递归来避免无限循环,但每次出现时会产生E_WARNING错误 (如果 array 不止一次包含了自身)并返回大于预期的统计数字。

返回值

返回array_or_countable中的单元数目。 如果参数既不是数组,也不是实现Countable接口的对象,将返回1。 有个例外:如果array_or_countableNULL则结果是0

范例

Example #1count()例子

<?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 // PHP 7.2 起
int(0)

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

Example #2 递归count()例子

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

// recursive count
echo count($food, COUNT_RECURSIVE); // output 8

// normal count
echo count($food); // output 2

?>

淘宝 adsense 商品推荐

正版 Google AdSense实战宝典:用谷歌广告联盟出海赚美元 第2版 seo搜索引擎优化 广告营销 网站运营书籍 AdSense从入门到精通

价格:39.5元

更新日志

版本说明
7.2.0当无效的 countable 类型传递给array_or_countable参数时,count()会产生警告。

参见

is_array()- 检测变量是否是数组

isset()- 检测变量是否已设置并且非 NULL

empty()- 检查一个变量是否为空

strlen()- 获取字符串长度