PHP中获取数组长度应使用count()函数,它支持一维和多维数组,默认统计第一层元素;sizeof()是其别名;多维数组需加COUNT_RECURSIVE参数递归计数;操作前须用is_array()校验类型;配合array_keys()可实现条件过滤计数。

如果您在PHP中需要获取数组的元素数量,但不确定如何正确使用函数或处理不同类型的数组,则可能是由于对内置函数的理解存在偏差。以下是获取数组长度的具体方法:
一、使用count()函数获取数组长度
count()是PHP中最常用且最直接的内置函数,用于统计数组中元素的总数,支持一维和多维数组(默认为COUNT_NORMAL模式)。该函数返回整型数值,适用于所有合法数组类型。
1、声明一个索引数组:$arr = [1, 2, 3, 4];
2、调用count()函数:$len = count($arr);
立即学习“PHP免费学习笔记(深入)”;
3、输出结果:echo $len; // 输出4
二、使用sizeof()函数替代count()
sizeof()是count()的别名函数,二者功能完全一致,底层实现相同,可互换使用。该函数的存在主要为兼容性和语义清晰性提供支持。
1、定义关联数组:$data = ['name' => 'Alice', 'age' => 25];
2、调用sizeof():$size = sizeof($data);
3、打印结果:var_dump($size); // 返回2
三、处理多维数组时指定递归计数
当数组嵌套层级较深时,count()默认只计算第一层元素数量;若需统计所有子元素总数,需传入COUNT_RECURSIVE参数,使其递归遍历全部层级。
1、创建二维数组:$matrix = [[1, 2], [3, 4, 5], [6]];
2、启用递归模式:$total = count($matrix, COUNT_RECURSIVE);
3、验证输出:echo $total; // 输出6
四、判断变量是否为数组后再计数
直接对非数组变量调用count()会返回1(除NULL外),可能导致逻辑错误。因此,在调用前应先使用is_array()进行类型校验,确保操作对象合法。
1、接收外部数据:$input = $_GET['list'] ?? null;
2、检查是否为数组:if (is_array($input)) { $n = count($input); }
3、否则赋默认值:else { $n = 0; }
五、使用array_keys()配合count()应对键过滤场景
当仅需统计满足特定条件的键对应元素数量时,可先用array_keys()提取匹配键名,再对其结果调用count(),避免手动循环遍历。
1、定义带条件的数组:$items = ['a' => 10, 'b' => 0, 'c' => 20, 'd' => 0];
2、筛选非零值的键:$nonzero_keys = array_keys($items, 0, true);
3、获取非零元素数量:$valid_count = count($items) - count($nonzero_keys); // 结果为2











