我有一个带有嵌套 foreach 循环的 while 循环,在运行第一个 while 循环后,foreach 循环内的数组被取消设置(或至少不再是一个数组)。
我要去的是一个条形图的数据数组,它显示自开始日期以来的每一天以及每天按类型(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 会自动将指针重置回开始,所以这不是问题。
我肯定错过了一些明显的东西。非常感谢任何指导。