【发布时间】:2013-11-28 08:12:43
【问题描述】:
嗨,我在数组值中有一个重复日期,我想从数组值中计算重复日期的数量。我试过了,但不确定是否正确,并且收到错误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 呈现一次。
我可以理解我计算错误,因为在第二个循环中我再次从第一个索引开始,因此增加了计数。
我想知道相同日期的计数。这该怎么做。还有其他方法可以计算吗?请问有什么帮助吗?
【问题讨论】:
-
您要分组计数吗?比如
2013-11-28 = 3、2013-11-29 = 2和2013-11-30 = 1? -
$len = sizeof($array);使用 $len = count($array);
-
@SHIN
sizeof和count是等价的。 -
错误是因为
if ($day[0] == '')。您在向$day添加任何内容之前执行此操作,因此还没有元素 0。 -
好的,谢谢。 +1 为 sizeof 和 count @Barmar
标签: php arrays loops for-loop foreach