如何在php中检查匹配的数组值?

时间:2013-11-28 08:12:44

标签: php arrays loops for-loop foreach

嗨我在数组值中有重复日期我要计算数组值中重复日期的数量。我试过这个,但我不确定是否正确并且收到错误Undefined offset: 0

<?php $array = array('2013-11-28','2013-11-28','2013-11-28','2013-11-29','2013-11-29','2013-11-30');

$len = sizeof($array);
$len = $len-1;
$day = array();
for($i=0; $i<=$len; $i++)
{
    for($j=0; $j<=$len; $j++)
    {
        if($array[$i] == $array[$j])
        {
            if($day[0] == '')
            {
                $co = 1;
                $day[] = $co;
            }
            else {
                $day[$i] = $co++;
            }
        }
    }
    echo 'day'.$i.' '.$day[$i].' ';
}
?>

从日期值开始,我应该在2013-11-28获得3,在2013-11-29获得2,在2013-11-30获得1,因为你可以看到2013-11-28被提供3次,2013-11 -29呈现2次和 2013-11-30被提出一次。

我可以理解我错误地计算,因为在第二个循环中我再次从第一个索引开始,因此增加了计数。

我想知道相同日期的数量。这该怎么做。有没有其他方法可以计算这个?有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

使用array_count_values()

$dupesCount = array_count_values($array);

这将为您提供一个数组,其中值为键,新值为重复次数。