我如何计数阵列重复项目的出现 [英] How do I count occurrence of duplicate items in array

查看:122
本文介绍了我如何计数阵列重复项目的出现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要统计每个重复项发生在一个数组,只有独特/非重复项目的数组各自的出现结束了。

下面是我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆