在php编程里,求一个数组的长度就是获取数组中元素的总数。php内置了count函数和sizeof函数来完成这件事,它们用法一致,返回的结果也相同。下面通过具体说明和代码来学习如何使用。

一、count函数求数组长度
count函数是php中最常用的统计数组长度的方法,其基本语法如下:
<?php
// 定义一个普通的一维数组
$fruits = array('apple', 'banana', 'orange');
// 使用count求数组长度
$len = count($fruits);
echo $len; // 输出 3
?>
count函数的第一个参数是要统计的数组,第二个参数默认为COUNT_NORMAL,只统计当前一层。若传入COUNT_RECURSIVE,则会递归统计多维数组中所有元素。
二、sizeof函数求数组长度
sizeof函数是count函数的别名,在实际开发中两者可以互换,底层调用的都是同一个处理逻辑。
<?php $colors = ['red', 'green', 'blue', 'yellow']; $length = sizeof($colors); echo $length; // 输出 4 ?>
三、多维数组的长度统计
当数组包含子数组时,普通统计只算第一层。如果要统计全部元素个数,需使用递归模式。
<?php
$list = [
'a' => [1, 2, 3],
'b' => [4, 5],
'c' => 6
];
echo count($list); // 输出 3,只算第一层
echo count($list, COUNT_RECURSIVE); // 输出 8,包含子数组所有元素
?>
参数说明
array:必需,要统计的数组mode:可选,COUNT_NORMAL或0表示不递归,COUNT_RECURSIVE或1表示递归统计
四、使用建议
由于sizeof只是count的别名,团队开发中建议统一使用count,语义更清晰。统计前可用is_array()判断变量是否为数组,避免对非数组使用函数产生警告。
<?php
$data = 'not an array';
if (is_array($data)) {
echo count($data);
} else {
echo '不是数组';
}
?>
注意:count和sizeof对空数组返回0,对未初始化的变量直接调用会产生警告,应先确保变量已定义且为数组类型。
| 函数 | 是否递归 | 返回值示例 |
|---|---|---|
| count($arr) | 否 | 一维元素个数 |
| count($arr, 1) | 是 | 所有层级元素总和 |
五、总结
php求数组长度直接用count或sizeof即可,二者等价。处理多维数组时记得根据需求传入第二个参数。日常写代码推荐用count并配合is_array检查,代码更稳健易读。