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

有些函数可以用来确定数组中的值总数及唯一值的个数。使用函数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)

?>

>> 本文固定链接: http://php.ncong.com/php_course/arry_function/array_tongji.html

>> 转载请注明: 恩聪php 2014年04月13日 于 恩聪PHP学习教程 发表

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

时间: 2024-10-16 02:15:24

统计数组元素的个数和唯一性的函数的相关文章

php统计数组元素个数

count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_count_value():统计每个特定的值在数组$array中出现过的次数; 如: $array=array(4,5,1,2,3,1,2,1); $ac=array_count_value($array); 将创建一个名为

用reduce装逼 之 多个数组中得出公共子数组,统计数组元素出现次数

昨天做了一道美团的面试题,要求是给N个数组,找出N个数组的公共子数组. var a = [7,2,3,4,5]; var b = [4,2,3,7,6]; var c = [2,3,3,3,7]; var d = [4,2,3,8,7]; 以上四个数组,有公共子数组2, 3,7 function main(){ var result = []; var arr = arguments[0]; for(var i=1 ; i<arguments.length ; i++){ var arr = a

limitBy过滤器是配合数组使用的,限制数组元素的个数,话不多说,来个小例子。

<div id="box"> <ul> <li v-for="val in arr | limitBy 2"> {{val}} < > </ul> </div> <> var vm=new Vue({ data:{ arr:[1,2,3,4,5] }, methods:{ } }).$mount('#box'); </> 可以看到,我在li标签里面循环数组时,添加了lim

python统计数组元素出现次数以及排序

数组: a = [1, 2, 3, 4, 2, 1, 4, 1, 1] 首先转换为字典,转换为"元素-出现次数"对: b = {} for i in a: b[i] = a.count(i) 实现方式一(冒泡): c = b.items()#转换为列表 for j in range(len(b)): for i in range(len(b)-j-1): if c[i][1] < c[i+1][1]: c[i] ,c[i+1] = c[i+1],c[i] print c 实现方式

MATLAB 统计不同区间中元素的个数

使用 find 命令: x = 0:10;%生成数组 k = find( x > 2 & x < 5 );%查找大于2小于5的元素的数组下标 size(k,2) %统计的元素的个数 原文地址:https://www.cnblogs.com/shenxiaolin/p/10532852.html

PHP统计数组和唯一的数组

统计数组元素出现的频度 array_count_values() 函数返回一个包含关联键/值对的数组.其形式为z array array_count_values(array array) 其中每个键表示input_array 中的一个值,相应的值表示这个键在input_array 中出现(作为值) 的频度.示例如下: $states = array("Ohio" , "Iowa" , "Arizona" , "Iowa" ,

数组元素排序

/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小 排序.n及数组元素在主函数中输入.*/ #include <stdio.h> void sort(int *x, int n); void outPutAraay(int *x, int n); void swap(int *v1, int *v2); int main(int argc, const char * argv[]) { int n; printf("请输入数组元素的个数n\n&

使用函数指针,完成一个sort()函数,能对任何类型的数组元素进行排序: 回调函数 以及 memcpy ()原型实现

进来复习了一下C语言指针,一直没有写过太多关于函数指针的代码,而且对回调函数的理解一直都是在理论上,基本上没有太写过关于它的代码,进来得空,写了一个小程序加深下自己对回调函数和函数指针的理解. 问题描述: 编写一个sort()函数,使它能够对任何类型的数组元素进行排序. 下面是我写的代码: /* 使用函数指针的回调函数技巧,设计一个能排序int 和char 数组的sort()函数 */ #include<stdio.h> #include<stdlib.h> #include<

统计数组中重复元素个数

/** * 循环统计数组或集合中的重复元素个数 * @param args */ public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); String[] ss = {"白","黑","绿","白"}; for (int i = 0; i < ss.len