我收到一个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>
)
)
我在这里错过了什么??
这可能会修复您的警告。
foreach ( (array) $distr_continents[$continent_id] as $distributor_data )
{
echo('<td>' . $distributor_data . '</td>');
}
我认为数组是多维的,所以你也需要在里面运行一个循环。。。这只是一个参考
希望你能理解。
foreach ( $distr_continents[$continent_id] as $distributor_data )
{
foreach($distributor_data as $d_data){
echo('<td>' . $d_data . '</td>');
}
}
确保$district_continents[$continent_id]始终是一个数组。
只需将foreach循环封装如下。
if(isset($distr_continents[$continent_id]) && is_array($distr_continents[$continent_id])){
// Your foreach loop here
}
此外,您正在尝试回显数组。这是错误的,将发出警告。