Я получаю Invalid argument supplied for foreach()
предупреждения 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] всегда является массивом.
Просто инкапсулируйте цикл foreach, как показано ниже.
if(isset($distr_continents[$continent_id]) && is_array($distr_continents[$continent_id])){
// Your foreach loop here
}
Также вы пытаетесь эхо-массива. Это неправильно, и вы получите предупреждение.
Я думаю, что массив многомерен, поэтому вам нужно также запустить цикл внутри... Это просто ссылка
надеюсь, что вы это понимаете.
foreach ( $distr_continents[$continent_id] as $distributor_data )
{
foreach($distributor_data as $d_data){
echo('<td>' . $d_data . '</td>');
}
}