写点什么

【web 开发基础】PHP 中获取数组的元素个数 (51)

作者:迷彩
  • 2022-12-29
    广东
  • 本文字数:1246 字

    阅读完需:约 4 分钟

前言


在我们日常的开发中,除了要查询数组中的元素的键和值等数据,我们还会统计数组中的元素格式,以便更好地对数组操作,比如我们需要对数组使用 for 循环进行遍历(当然在实际的开发中我们会更多使用 foreach 来对数组进行遍历),或者当我们需要对数组中的数据进行分页的时候都需使用到数组的元素个数的统计功能。在其他的编程语言当中我们会使用数组的 size 或者 length 属性对数组的元素个数进行统计,接下来我们看看在 PHP 中怎么统计数组中的元素个数。


统计数组中元素的个数

在 PHP 中统计数组元素的个数可以使用 count()函数进行元素的个数的获取。具体语法格式如下:

count(目标数组)
复制代码

下面我们通过实例子来了解 count()的具体用法:

<?php$arr1 = array('张三','李四','王五','李白','杜甫','白居易','王安石','苏轼','韩愈','柳宗元');//名字和年龄$arr2 = array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21);
$arr3 = array( array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21), array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21), array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21), array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21));

echo '<br>';echo '数组$arr1中元素的个数为'.count($arr1);echo '<br>';echo '数组$arr2中元素的个数为'.count($arr2);echo '<br>';echo '二维数组$arr3中元素的个数为'.count($arr3);
echo '<br>';echo '二维数组$arr3中所有元素的个数为'.count($arr3,1);?>
复制代码

执行结果如下:


除了使用 count()函数之外,我们还可以使用 array_count_values()函数对数组内的元素值进行统计,并且返回一个以函数值为“键值”、以函数值个数为“元素值”的数组。

下面通过例子介绍如何使用 array_count_values()函数统计数组的元素值个数,代码如下:

<?php//名字和年龄$arr2 = array('张三'=>28,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21);
print_r(array_count_values($arr2));
复制代码

执行结果如下:


总结

  1. 数组 $arr1 通过 count()函数返回整数 10。因为数组 $arr1 有 10 个数组元素。

  2. 如果数组是一个二维数组。count()只统计了数组内的 4 个内嵌数组的数量,也就是只统计数组(最外层)第一层的元素数量

  3. count($arr3,1)这一语句中,count()函数设置了一个模式(mod)为整数“1”。这个模式(mod)设置为整数“1”的意义是,count 统计的时候要对数组内部所有的内嵌数组进行循环查询,所以最终的结果是所有内嵌数组的个数加上内嵌数组内元素的个数,即 4 个内嵌数组加上 24 个数组元素,一共 28 个元素。

4.组 $arr2 为一个联合(关联)数组,通过 array_count_values($arr2)统计数组内元素值的个数和分布,然后以键值和值的形式返回一个数组。每个元素都有一个,如果存在相同的元素值,虽然它们的键值完全不同,也会统计到一起

5.array_count_values()只能用于一维数组,主要是因为它不能把内嵌的数组当作元素进行统计。


发布于: 2022-12-29阅读数: 58
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP中获取数组的元素个数 (51)_数组_迷彩_InfoQ写作社区