zoukankan      html  css  js  c++  java
  • php中count 多维数组长度统计实现方法

    下面程序运行结果为()

     代码如下 复制代码

    ?$numb=array( 
                array(10,15,30),array(10,15,30),array(10,15,30) 
    ); 
      
    echo count($numb,1);

    A.3
    B.12
    C.6
    D.9

    答案:B

    count函数中如果mode被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数(也就是你结果的12)。如果不设置mode默认为0 。不检测多维数组(数组中的数组)(结果3)。


    首先遍历的是外面的数组array得出有两个元素(”color1″,”color2″,”color3″) 为3
    再遍历(”color1″,”color2″,”color3″)数组得出的是9个元素 为9
    结果就是3+9=12

    参考

     代码如下 复制代码

    <?php
    $fruits = array (
        array (1, 2,null,null, 5, 6),
        array (1, 2,null,null, 5, 6),
    );

    echo(count($fruits[0]));
    ?>

    你说的可能是用其他方式定义的数组,比如直接用:

     代码如下 复制代码

    <?php
    $fruits[0][0]=1;
    $fruits[0][3]=1;
    $fruits[0][4]=1;

    echo(count($fruits[0]));
    ?>

    这样那就输出3,因为php中的数组不要求索引必须连续,参考手册上有如下一段:

    数组
    PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树。


    实例


    获得二维或多维数组的第一维的长度,这是个常用的程序判断,比如你读取的数组是一个二维数组:

     代码如下 复制代码
    <?php
    $arr=array(
                     0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
                     1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
                    );
    ?>

    如果你想统计数组$arr的长度,也就是说该二维数组只有两条新闻,你想要的数字也是2,但是如果使用count($arr)不同版本的php,统计的结果是不一样的;
    后来在php手册中发现,count函数还有第二个参数,解释如下:
    count函数有两个参数:
    0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
    1(或COUNT_RECURSIVE)为检测多维数组,
    所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:

     代码如下 复制代码
    <?php
    if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )
    {
      .....
    } else {
      .....
    }
    ?>

    你可以使用这样的代码来测试该函数:

     代码如下 复制代码
    <?php
    $arr=array(
                     0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
                     1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
                   );
    echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
    echo "<br/>";
    echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
    ?>

    好了,到此位置,已经解决php中获取二维或多维数组的第一维长度的问题

  • 相关阅读:
    第十五篇: Ajax Control Toolkit 控件包3. DragPanel (拖动效果)
    希望找人一起写个 Ajax 的封装
    第三篇: Silverlight 2.0 下载与安装
    ASP.NET AJAX 1.0 英文文档,视频教程
    第十四篇: 建立 AJAX 母版页 (为了后面例子方便)
    第十三篇: Ajax Control Toolkit 控件包2. CollapsiblePanel (展开和折叠效果)
    几种流行的JS框架的选择
    第二篇: Silverlight 下载与安装
    (原创)WINCE流驱动的动态加载调试
    SQL语法,SQL语句大全,SQL基础(转载)
  • 原文地址:https://www.cnblogs.com/youxin/p/2924287.html
Copyright © 2011-2022 走看看