php如何获取一维数组和二维数组的长度
一维数组和二维数组在PHP中的应用可谓是真多呢,基本上都是每天要敲的代码,但恰恰今天遇到要统计二维数组的总长度时却忘记要用什么函数了,通常我们直接 count 就可以了,但在PHP中直接使用这个函数是报错的,后来查了PHP函数表,原来是要加参数区分是否多维数组的。
好了,既然要统计二维数组的数量,哪这里也顺便把一维数组也一并给统计了。
PHP统计一维数组长度:
一维数组是可以直接使用 php函数count(),或者是 sizeof() 的,具体看实例代码:
- $arr = Array('0','1','2','3','4');
- echo count($arr);
- // 输出 5
- $arr = array('A','B','C');
- echo sizeof($arr);
- //输出3
PHP手册上讲,count() 和 sizeof() 是同一个函数,只不过 sizeof() 是 count() 的别名罢了。这两个函数应用在一维数组上的作用就是统计一维数组里面有几个值。也是夏日博客经常用到的统计数量的函数。
PHP统计二维或多维数组长度
统计二维数组长度或者多维数组长用的也是 count(),只是加了参数,如果仅是使用 count($arr) 来统计的话,在不同版本的PHP下,会有不同的结果,而在我本机 linux 操作系统下,是直接出现错误的,也不知道是哪里不对劲了,既然要统一的话,哪么就使用 count() 的参数吧,手册上是这样说的,这个函数共有两个参数,分别为:
0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,
我们这里是不检测多维数组的,所以直接就是 count(0) 就可以了,代码实例如下:
- <?php
- if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )
- {
- .....
- } else {
- ..... //xiariboke.net
- }
- ?>
这是检测,如果我们可以确定是二维数组的话,就更简单了,直接 count(0) 就行,如果是多维数组的话,利用上面的代码检测一下就好了,下面是一个二维数组的例子,也是夏日博客刚刚遇到问题的解决方案,其实利用 PHP 手册,这些问题都是很 so easy 的,代码如下:
- <?php
- $arr=array(
- 0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
- 1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
- ); //xiariboke.net
- echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
- echo "<br/>";
- echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
- ?>
php的学习重在利用手册和函数,本来是想利用循环数组得出的,原来利用函数还是蛮简单的,这里小小的补偿一下 thinkphp 中统计某个字段的函数:
$num=M('ShopOrder')->where($map)->sum('num');
这是统计某个表里面某个字段所有值的集合,比如 ShopOrder 表里有N条个数据,哪么就有 N 条个 num 字段,这里就是所有的 num 字段加起来的集合。