我如何计数阵列重复项目的出现 [英] How do I count occurrence of duplicate items in array
本文介绍了我如何计数阵列重复项目的出现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要统计每个重复项发生在一个数组,只有独特/非重复项目的数组各自的出现结束了。
下面是我的code;但我并不在那里我要去错了!
< PHP
$阵列=阵列(12,43,66,21,56,43,43,78,78,100,43,43,43,21);// $previous [值] [出现]为($ ARR = 0; $改编<计数($数组); $ ARR ++){ 目前$ = $阵列[$ ARR];
为($ N = 0; $ N<计数($previous); $ n ++){
如果(!$电流= $previous [$ n]的[0]){// 12不是43 - - - - >真正
如果($当前!= $previous [计数($previous)] [0]){
$previous [$ N +] [0] = $电流;
$previous [$ N +] [1] = $计数器++;
}
}其他{
$previous [$ n]的[1] = $计数器++;
未设置($previous [计数($previous)-1] [0]);
未设置($previous [计数($previous)-1] [1]);
}
}
}
//期望值
回声号; BR>< BR>'; // 7'。.Count之间($previous)'&LT:非重复项目
的print_r($previous); //阵列({12,1},{21,2},{43,6},{66,1},{56,1},{78,2},{ 100,1})
?>
解决方案
array_count_values
,享受: - )
$阵列=阵列(12,43,66,21,56,43,43,78,78,100,43, 43,43,21);
$瓦尔斯= array_count_values($数组);
回声号非重复的项目:.Count之间($丘壑)。'< BR>< BR>';
的print_r($瓦尔斯);
结果:
否。非重复的项目:7
排列
(
[12] => 1
[43] => 6
[66] => 1
[21] => 2
[56] => 1
[78] => 2
[100] => 1
)
I would like to count the occurrence of each duplicate item in an array and end up with an array of only unique/non duplicate items with their respective occurrences.
Here is my code; BUT I don't where am going wrong!
<?php
$array = array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);
//$previous[value][Occurrence]
for($arr = 0; $arr < count($array); $arr++){
$current = $array[$arr];
for($n = 0; $n < count($previous); $n++){
if($current != $previous[$n][0]){// 12 is not 43 -----> TRUE
if($current != $previous[count($previous)][0]){
$previous[$n++][0] = $current;
$previous[$n++][1] = $counter++;
}
}else{
$previous[$n][1] = $counter++;
unset($previous[count($previous)-1][0]);
unset($previous[count($previous)-1][1]);
}
}
}
//EXPECTED VALUES
echo 'No. of NON Duplicate Items: '.count($previous).'<br><br>';// 7
print_r($previous);// array( {12,1} , {21,2} , {43,6} , {66,1} , {56,1} , {78,2} , {100,1})
?>
解决方案
array_count_values
, enjoy :-)
$array = array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);
$vals = array_count_values($array);
echo 'No. of NON Duplicate Items: '.count($vals).'<br><br>';
print_r($vals);
Result:
No. of NON Duplicate Items: 7
Array
(
[12] => 1
[43] => 6
[66] => 1
[21] => 2
[56] => 1
[78] => 2
[100] => 1
)
这篇关于我如何计数阵列重复项目的出现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文