我收到Invalid argument supplied for foreach()
警告我没有解释。
一切都按预期工作,但似乎foreach()
不喜欢数组作为参数,即使数组包含另一个数组(对foreach()
有效)?
我有以下代码:
foreach ( $distr_continents[$continent_id] as $distributor_data )
{
echo('<td>' . $distributor_data . '</td>');
}
$distr_continents[$continent_id]
看起来像这样:
Array
(
[2] => Array
(
[0] => <td valign="top"></td>
[1] => <td valign="top"></td>
)
[1] => Array
(
[0] => <td valign="top"></td>
[1] => <td valign="top"></td>
)
[4] => Array
(
[0] => <td valign="top"></td>
[1] => <td valign="top"></td>
[2] => <td valign="top"></td>
[3] => <td valign="top"></td>
[4] => <td valign="top"></td>
[5] => <td valign="top"></td>
[6] => <td valign="top"></td>
[7] => <td valign="top"></td>
[8] => <td valign="top"></td>
[9] => <td valign="top"></td>
[10] => <td valign="top"></td>
)
[3] => Array
(
[0] => <td valign="top"></td>
[1] => <td valign="top"></td>
[2] => <td valign="top"></td>
[3] => <td valign="top"></td>
[4] => <td valign="top"></td>
)
)
我在这里缺少什么?
答案 0 :(得分:1)
这可能会修复您的警告。
foreach ( (array) $distr_continents[$continent_id] as $distributor_data )
{
echo('<td>' . $distributor_data . '</td>');
}
答案 1 :(得分:0)
我认为数组是多维的,所以你需要在里面运行一个循环...这只是一个参考
希望你能理解它。foreach ( $distr_continents[$continent_id] as $distributor_data )
{
foreach($distributor_data as $d_data){
echo('<td>' . $d_data . '</td>');
}
}
答案 2 :(得分:0)
确保$ distr_continents [$ continent_id]始终是一个数组。
只需封装foreach循环,如下所示。
if(isset($distr_continents[$continent_id]) && is_array($distr_continents[$continent_id])){
// Your foreach loop here
}
此外,您正在尝试回显数组。这是错误的,并会发出警告。