Ⅰ php获取数组中重复最多的元素的实现方法
本文实例讲述了PHP获取数组中重复最多的元素的实现方法。分享给大家供大家参考。具体方法如下:
复制代码
代码如下:<?php
/**
*
*
Created
on
2014-4-1
*
@param
array
$array
*
@param
int
[optional]
$length
*
@return
array
*/
function
mostRepeatedValues($array,$length=0){
if(emptyempty($array)
or
!is_array($array)){
return
false;
}
//1.
计算数组的重复值
$array
=
array_count_values($array);
//2.
根据重复值
倒排序
arsort($array);
if($length>0){
//3.
返回前
$length
重复值
$array
=
array_slice($array,
0,
$length,
true);
}
return
$array;
}
$array
=
array(1,
1,
1,
54,
3,4,
3,4,
3,
14,
3,4,
3,7,8,9,12,45,66,5,7,8,9,2,45);
$counts=mostRepeatedValues($array,5);
print_r($counts);
/*输出结果为:
Array
(
[3]
=>
5
[4]
=>
3
[1]
=>
3
[9]
=>
2
[45]
=>
2
)
*/
?>
希望本文所述对大家的PHP程序设计有所帮助。
Ⅱ php如何统计一个数组中相同元素的个数
简单的循环即可,选出重复(出现次数大于等于2)的元素并统计每个重复元素出现的次数:
php中的 array_count_values() 函数可以实现
array_count_values() 函数用于统计数组中所有值出现的次数。
本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
array_count_values(array)
例如:
<?php
$a=array("Cat","Dog","Horse","Dog");
print_r(array_count_values($a));
?>
输出:
Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )
(2)php获取数组重复值扩展阅读:
php统计数组元素个数
count():对数组中的元素个数进行统计;
sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数,得到一个常规标量变量中的元素个数。
如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0;
array_count_value():统计每个特定的值在数组$array中出现过的次数;
如:
$array=array(4,5,1,2,3,1,2,1);
$ac=array_count_value($array);
将创建一个名为$ac数组,该数组包括:
关键字 值
4 1
5 1
1 3
2 2
3 1
Ⅲ php判断检测一个数组里有没有重复的值
php里有一个处理数组重复值得函数array_unique,我们的思路就是用这个函数来实现的。
if (count($array) != count(array_unique($array))) { echo '该数组有重复值'; },还有什么看不懂的,可以去后盾网看看
Ⅳ php取出多维数组重复的值
$arr = array(
array(
array(
"stocknotifyId" => 1,
"sku" => '13809_BL_37',
"email" => '[email protected]'
),
array(
"stocknotifyId" => 3,
"sku" => '13809_BL_37',
"email" => '[email protected]'
),
array(
"stocknotifyId" => 5,
"sku" => '13809_BL_37',
"email" => '[email protected]'
)
),
array(
array(
"stocknotifyId" => 2,
"sku" => '13809_B_39',
"email" => '[email protected]'
)
),
array(
array(
"stocknotifyId" => 4,
"sku" => '13809_BL_39',
"email" =>'[email protected]'
)
)
);
$re = array();
foreach($arr as $a) {
foreach ($a as $v) {
$tmp_v = $v;
unset($tmp_v['email']);
if(isset($re[$v['email']])) {
$re[$v['email']][] = $tmp_v;
}else{
$re[$v['email']] = array($tmp_v);
}
}
}
print_r($re);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!-- output -->
Array
(
[[email protected]] => Array
(
[0] => Array
(
[stocknotifyId] => 1
[sku] => 13809_BL_37
)
[1] => Array
(
[stocknotifyId] => 2
[sku] => 13809_B_39
)
)
[[email protected]] => Array
(
[0] => Array
(
[stocknotifyId] => 3
[sku] => 13809_BL_37
)
[1] => Array
(
[stocknotifyId] => 4
[sku] => 13809_BL_39
)
)
[[email protected]] => Array
(
[0] => Array
(
[stocknotifyId] => 5
[sku] => 13809_BL_37
)
)
)
Ⅳ 求解数组中重复值的问题php
可以利用数组key不重复的特性,来解决这个问题
12345678910$array=array();//你的数组$new_array = array();foreach($array as $v){$new_array[$v['title']]=1;}$last = array();foreach($new_array as $u=>$v){$last[] = $u;}echo join(',',$last);
Ⅵ PHP 取出二维数组中有重复值的其他某一项值
//可以再froeach中写一个if判断,将id为2的na值压入$arr数组如:
foreach($array$key=>$value){
if($value['id']==2){
$arr=$value['na'];
}
}
这种方法应该能满足你的需求了吧
Ⅶ php判断一个数组中有多少个重复值
这个问题有2层意思:
考虑数组为$arr = ("bob","bob","jose","rose","kid","rose","obo")
1,找出特定某个值重复了多少次,例如,找出数组中bob出现了多少次
$count = 0;
foreach($arr as $v)
{ if("bob" == $v )
$count ++;
}
这里求出来的$count 就是bob出现了多少次
2,找出重复过的值,而不是针对某个值。应该二重循环
$count=array();//数组记录重复次数
$temp_count=0;
foreach($arras$out)
foreach($arras$in)
{
$temp_count=0;
if($in==$out)
{
$temp_count++;
if($temp_count>1)
{
$count[$in]=$temp_count;
}
}
}
这里的话,$count数组里面就是存放了重复过的键值和次数(大于1)