foreach”;提供的参数无效“;当供应阵列时


foreach "Invalid argument supplied" when supplying array

我收到一个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
}

此外,您正在尝试回显数组。这是错误的,将发出警告。