错误我收到为foreach()提供的无效参数
违规部分是:
foreach($subs[$id] as $id2 => $data2)
奇怪的原因我在其他地方使用相同的构造并且它工作正常..我正在使用它来生成子类别,它可以工作,但我想摆脱错误
这是更多背景
foreach($parents as $id => $data)
{
if($x == 0)
{
$html .= "<tr width='25%' class='row2'>";
}
$shtml = "";
$i = 0;
***foreach($subs[$id] as $id2 => $data2)***
{
$i++;
if($i == 15)
{
$shtml .= $this->ipsclass->compiled_templates[ 'skin_businesses' ]->portal_categories_sub_row( $id2, $data2['cat_name'], 1 ) . "";
break;
}
else
$shtml .= $this->ipsclass->compiled_templates[ 'skin_businesses' ]->portal_categories_sub_row( $id2, $data2['cat_name'], 0 ) . "";
}
答案 0 :(得分:2)
$subs[$id]
可能不是一致的数组。也就是说,$subs[0]
可能是一个数组,但$subs[1]
是一个标量。
尝试将其转换为数组:
foreach((array)$subs[$id] as $id2 => $data2)
如果$subs[1]
是标量,则将其转换为一个元素的短暂数组,以便迭代它。
答案 1 :(得分:0)
传递给循环的变量可能不是数组。尝试调试代码,以便在被送入循环之前找出它被赋值的位置。
如果您在某处为该变量分配了一个值,请按以下方式分配:
$subs[1] = array('somevalue');
PHP是一种动态类型语言,但知道变量在任何给定时刻的类型仍然非常重要。