• 统计数组元素的个数和唯一性的函数


    有些函数可以用来确定数组中的值总数及唯一值的个数。使用函数count()对元素个数进行统计,sizeof()函数时count()的别名,他们的功能是一样的。

    ①函数count()

    函数count()的作用是计算数组中的元素数目或对象中的属性个数。对于数组,返回其元素的个数,对于其他值则返回1。如果参数是变量而变量没有定义或是变量包含一个空的数组,该函数会返回0.该函数有两个参数,其函数原型如下:

    int count(mixed var [,int mode])

    其中第一个参数是必需的,传入要计数的数组或对象。第二个参数是可选的,规定函数的模式是否递归地计算多维数组中的数组的元素个数。可能的值是0和1,0为默认值,不检测多维数组,为1则检测多维数组。函数count()使用的代码如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
        $lamp = array("Linux","Apache","MySQL","PHP");
        echo count($lamp);          //输出数组的个数为:4
     
        //声明一个二维数组,统计数组中元素的个数
        $web = array(
            'lanmp' =>array("Linux","Apache","MySQL","PHP"),
            'j2ee' =>array("Unix","Tomcat","Oracle","JSP")
        );
     
        echo count($web,1);             //第二个参数的模式为1则计算多维数组的个数,输出10
        echo count($web)                //默认模式为0,不计算数组的个数,输出2
    ?>

    ②函数array_count_values()

    array_count_values()函数用于统计数组中所有值出现的次数。该函数只有一个参数,其函数的原型如下:

    array array_count_values(array input)

    参数规定输入一个数组,返回一个数组,其元素的键名是原数组的值,键值是该值在元素组中出现的次数。函数array_count_values()使用的代码如下所示:

    1
    2
    3
    4
    5
    6
    7
    <?php
        $array =array(1,'php',1,'mysql','php');     //晟敏跟一个带有重复值得数组
     
        $newArray = array_count_values($array);     //统计数组$array中所有值出现的次数
     
        print_r($newArray);     //输出:Array([1]=>2  [php]=>2  [mysql]=>1)
    ?>

    ③函数array_unique()

    array_unique()函数用于删除数组中重复的值,并返回没有重复值得新数组。该函数的原型如下:

    array array_unique(array array)

    参数需要接收一个数组,当数组中几个元素的值相等时,只保留一个元素,其他的元素被删除,别且返回的新数组中键名不变。array_unique()先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的array中同一个值的第一个出现的键名会被保留。函数array_unique()使用的代码如下所示:

    1
    2
    3
    4
    <?php
        $a = array("a"=>"php","b"=>"mysql","c"=>"php");            //声明一个带有重复值的数组
        print_r(array_unique($a));          //删除重复值后输出:Array([a]=>php  [b]=>mysql)
    ?>
     
  • 相关阅读:
    opencv 5 图像转换(1 边缘检测)
    opencv 4 图像处理(漫水填充,图像金字塔与图片尺寸缩放,阈(yu)值化)
    opencv 4 图像处理(2 形态学滤波:腐蚀与膨胀,开运算、闭运算、形态学梯度、顶帽、黑帽)
    HDU 1847-Good Luck in CET-4 Everybody!-博弈SG函数模板
    网络流
    multiset的erase()操作中出现跳过元素的问题
    HRBUST
    L1-8 矩阵A乘以B (15 分)
    L2-2 重排链表 (25 分)
    L2-4 部落 (25 分)
  • 原文地址:https://www.cnblogs.com/ncong/p/3899196.html
Copyright © 2020-2023  润新知