Ⅰ 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)