我有一个嵌套的foreach循环的while循环,在第一个while循环运行之后,foreach循环内的数组未被设置(或者至少停止成为一个数组)。嵌套的foreach在一个while循环中,数组并不是一个数组之后第一次
我要去的地方是一个条形图数据数组,每天显示自开始日期以来的每一天以及按类型(8种类型)的点击次数。因此,我计算了从开始日期到现在的天数,并且每天都会检查第一个数组,以了解当天有多少(如果有)以及哪些类型的点击。
这里是代码的相关位...
$i=0;
while($i<=$numdays)
{
echo $date2->format('Y-m-d') . "<br>";
foreach($clicklist as $key => $clicklist) {
if ($clicklist[clickdate] === $date2) {
echo $clicklist[clicks]." clicks on ".$clicklist[type]." on that date<br>";
}
}
$date2->modify('+1 day');
$i++;
echo is_array($clicklist) ? 'Array<br>' : 'not an Array<br>';
}
$ NUMDAYS是天从现在(所需图表变量之一的开始日期数,$ date2的是开始日期和$ clicklist被从数据库中的点击/日期/类型数组所有的随机回声只是让我可以看到发生了什么 - 或不是情况。
while循环正常工作是隔离,foreach循环也在while循环之外工作得很好(使用静态日期代替变量),但当然这只是一次运行。
从手册中,foreach会自动将指针重置为开始,所以这不是问题。
我失去了一些明显的东西我敢肯定..任何指导非常感谢。
感谢和感谢亚瑟,答案的窍门和编辑是一个好点 - 将做。 – Craig