资讯专栏INFORMATION COLUMN

php统计多维数组的元素个数

ytwman / 2062人阅读

摘要:一般情况下,使用可以直接统计数组的元素个数但是遇到二位数组的时候,我们想统计第二层的元素个数,这个时候可以使用函数的第二个参数,统计一维的所有元素,循环统计遍历元素在的时候,函数会循环统计元素的个数,如果元素是个数组则数量会总数会增加元素数

一般情况下,使用count可以直接统计数组的元素个数
$arr = [

"a",
"b",

];
echo count($arr);//2
但是遇到二位数组的时候,我们想统计第二层的元素个数,这个时候可以使用count函数的第二个参数,
count($arr, $mode = 0);$mode(0:统计一维的所有元素,1:循环统计遍历元素)
在$mode=1的时候,count函数会循环统计元素的个数,如果元素$a是个数组则数量会总数会增加$a元素数加1;
$arr = [

"a" => "b",
"c" => [
    "d",
],

];
echo count($arr, 1);//3("b",["d"],"d")
只要二维数组有规律,则可以很方便的统计二维的元素个数
$arr = [

"a" => [
    "d",
    "e",
],
"c" => [
    "d",
    "g",
],

];
echo count($arr, 1) - count($arr);//4
使用array_map也可以
$arrCount = 0;
$countFun = function($a) use(&$arrCount) {

$arrCount += count($a);
return $arrCount;

};
array_map($countFun,$arr);
echo $arrCount;
记住$arrCount一定要引用传值
如果要统计三维数组的元素个数
$arr = [

"a" => [
   "b" => [
       "d",
       "e",
       "g",
   ],
],
"c" => [
    "d" => [
        "d",
        "g",
    ],
],

];
$arrCount = 0;
$countFun = function($a) use(&$arrCount) {

$arrCount += count($a, 1) - count($a);
return $arrCount;

};
array_map($countFun,$arr);
echo $arrCount;
如果要统计四维数组的元素个数
$arr = [

"a" => [
   "b" => [
       "d" => [
           "e",
           "g",
       ],
   ],
],
"c" => [
    "d" => [
        "d" => [
            "e",
            "g",
            "f"
        ],
    ],
],

];
$arrCount = 0;
$napFun = function($a) use(&$arrCount) {

$countFun = function($a) use(&$arrCount) {
    $arrCount += count($a, 1) - count($a);
    return $arrCount;
};
array_map($countFun,$a);
return $arrCount;

};
array_map($napFun,$arr);
echo $arrCount;
如果是统计3维或更高维度的建议使用递归的方法
$arr = [

"a" => [
    "b" => [
       "d" => [
           "e",
           "g",
       ],
    ],
],
"c" => [
    "d" => [
        "d" => [
            "e",
            "g",
            "f"
        ],
    ],
],

];
function arrCount($arr, &$arrCount, $level){

if(0 === $level){
    $arrCount += count($arr);
    print_r($arr);
}else{
    $level--;
    foreach($arr as $a){
        arrCount($a, $arrCount, $level);
    }
}

}
$count = 0;
$level = 3;
arrCount($arr,$count,$level);
echo $count;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31063.html

相关文章

  • Python Numpy面向数组编程该怎么进行操作

      小编写这篇文章的主要目的,就是给大家来做一个详细的介绍,介绍关于Python Numpy的一些知识,比如在面向数组编程的时候,我们需要怎么进行操作,下面就给大家详细解答下。  数组编程  使用Numpy数组可以使你利用简单的数组表达式完成多项数据操作任务,而不需要编写大量的循环,这个极大的帮助了我们高效的解决问题。  我们都知道向量化的数组操作比纯Python的等价实现在速度这一方面快很多,至...

    89542767 评论0 收藏0
  • [PHP源码阅读]count函数

    摘要:源码解读如果是普通数组,函数会调用函数实现其功能的运行步骤如下如果当前被递归访问的次数大于,说明重复递归,染回错误否则计算当前数组层数的数组元素个数如果有递归参数选项,则继续递归访问如果参数是对象类型,实现时会先判断是否被定义。 在PHP编程中,在遍历数组的时候经常需要先计算数组的长度作为循环结束的判断条件,而在PHP里面对数组的操作是很频繁的,因此count也算是一个常用函数,下面研...

    shiguibiao 评论0 收藏0
  • PHP入门数组操作详解

    摘要:像其他变量一样,使用运算符可以改变数组元素的内容。数组的基本操作定义数组在中声明数组的方式主要有两种用函数声明数组,直接为数组元素赋值。 概述要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。 像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过 array[key] 语法来访问。showImg(https...

    ?xiaoxiao, 评论0 收藏0
  • PHP常用180函数总结

    摘要:输入两个数组输出返回完成后的数组在数组中根据条件取出一段值,并返回。如果要再用遍历数组,必须使用。返回值数组中当前指针位置的键值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为,,和。 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2); //4.2 输入: 数字 输出: 绝对值数字 2.ceil(): 进一法取整 echo ceil(9.999); /...

    HtmlCssJs 评论0 收藏0
  • Numpy 中文用户指南 1. 安装

    摘要:包的核心是对象。但有个例外,包括对象数组的元素大小是不同的。序列大小和速度在科学计算中尤为重要。例如考虑两个长度相同的列表中每个元素相乘的情况。此外,编码所需的工作量随数据维数的增加而增加。这些信息主要用于高级用户。 译者:飞龙 1.1 NumPy 是什么? 原文:What is NumPy? NumPy是Python中用于科学计算的基础包。它是一个Python库,提供多维数组对象,各...

    mochixuan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<