我的陈述有什么不对;得到未定义的偏移量?

时间:2014-03-31 05:49:44

标签: php

我一直得到未定义的偏移量..这会有什么问题?

for($m=0; $m<=count($data); $m++){ // (this is where it points)
  if(date("m-Y",strtotime($data['data'][$i]['date_d'])) == $curdate)
    $sum.$cmonth +=1;
  else
    $sum.$cmonth = 0;
}

2 个答案:

答案 0 :(得分:2)

这是因为,添加<=将使循环迭代直到数组的不存在索引。 ,像这样改写。

for($i=0; $i<count($data); $i++){ // (this is where it points)
  if(date("m-Y",strtotime($data['data'][$i]['date_d'])) == $curdate)
    $sum.$cmonth +=1;
  else
    $sum.$cmonth = 0;
}

我建议使用foreach

foreach($data as $k=>$v)
{

}

答案 1 :(得分:0)

我认为你的数组是多维的,你在第二个索引上运行循环所以喜欢

for($m=0; $m<count($data['data']); $m++){

这将考虑data变量中名为$data的数组的长度(如果有的话)。

并将$ i更改为$ m (如果您尝试使用循环遍历该数组),例如

if(date("m-Y",strtotime($data['data'][$m]['date_d'])) == $curdate)