登录  /  注册

php怎么统计数组中一共多少个元素

青灯夜游
发布: 2023-01-10 17:30:02
原创
1250人浏览过

php中可用count()或sizeof()函数来统计数组中元素的个数;sizeof()是count()的别名,因此 sizeof()的功能及使用方法与count()完全相同。count()函数可以统计出数组里所有元素的数量,或对象中的属性个数,语法“count(array,mode)”,参数“mode”设置为“count_recursive”或“1”可计算多维数组的元素个数。

php怎么统计数组中一共多少个元素

本教程操作环境:windows7系统、PHP8版、DELL G3电脑

在 PHP 中想要统计数组元素的数目其实很简单,PHP 为我们提供了两个函数,分别是 count() 和 sizeof() 函数。

说明:sizeof() 函数是 count() 函数的别名,也就是所 sizeof() 函数的功能及使用方法与 count() 函数完全相同。

示例:

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
//输出语句
var_dump($arr);
echo "数组长度为:".count($arr);
echo "<br>数组长度为:".sizeof($arr);
?>
登录后复制

1.png

上例统计的是一维数组的元素数目,但有时我们需要统计二维、三维等多维数组的元素数目要怎么做?

其实很简单,还是count() 或 sizeof() 函数,只需给其设置第二个参数,值为COUNT_RECURSIVE 或者 1即可。

<?php
header("Content-type:text/html;charset=utf-8");
$arr= array(
"张三",
25,
array("高数","PHP教程","英语")
);
//输出语句
var_dump($arr);
echo "数组长度为:".sizeof($arr,1);
?>
登录后复制

2.png

看了上面的输出结果,是不是感到疑惑,数组中不是只有5个元素("张三"25"高数""PHP教程""英语")吗,为什么结果显示的数组长度不是5,而是6呢?

其实是因为,此时count()函数循环统计二维数组中的所有元素,“array("高数","PHP教程","英语")”会被当做一个整体统计一次,它里面的元素("高数""PHP教程""英语")又会被统计一次,所以最终结果为 6。

扩展知识:PHP count() /sizeof() 函数

下面就来给大家介绍一下count() 函数来了解一下这两个函数。

count() 函数可以统计出数组里所有元素的数量,或对象中的属性个数,其语法格式如下:

count(array,mode)
登录后复制

参数说明如下:

  • array:为待统计的数组或对象;

  • mode:为可选参数,可以省略。

    如果省略 mode 参数,或者将其设置为 COUNT_NORMAL 或者 0,count() 函数将不检测多维数组;

    如果 mode 设置为 COUNT_RECURSIVE 或者 1,count() 函数将递归计算数组中元素的个数,对于计算多维数组的元素个数尤为有用。

推荐学习:《PHP视频教程

以上就是php怎么统计数组中一共多少个元素的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号