为 foreach() 多数组提供的参数无效

Invalid argument supplied for foreach() multiple array

这是我的代码:当没有从数据库检索数据时出现警告。如何解决这个问题?..我不知道如何更改多个数组。

foreach ($users_id_array[$region_chart2][$country_chart2] as $key) {

                $query_diff2 = "SELECT ut_lp_marks.obj_id, object_data.title, read_event.spent_seconds, " .
                        "read_event.read_count, ut_lp_marks.status, ut_lp_marks.percentage, ut_lp_marks.u_comment FROM ut_lp_marks ".
                        "LEFT JOIN object_data ON (object_data.obj_id = ut_lp_marks.obj_id) ".
                        "LEFT JOIN read_event ON (read_event.obj_id = object_data.obj_id AND read_event.usr_id = ut_lp_marks.usr_id) ".
                        "WHERE ut_lp_marks.usr_id=$key AND object_data.type = 'crs'";


                     $result_diff2 = mysql_query($query_diff2);

                            while($rec_diffcourse2 = mysql_fetch_assoc($result_diff2))
                            {

                                 if ($rec_diffcourse2['status'] == 0) {

                                        $total_diffna1++;
                                    }
                                    if ($rec_diffcourse2['status'] == 1) {
                                        $total_diffinprogress1++; 
                                    }
                                    if ($rec_diffcourse2['status'] == 2) {
                                        $total_diffpassed1++;
                                    }
                                    if ($rec_diffcourse2['status'] == 3) {
                                        $total_difffailed1++;
                                    }       



                            }
                            $no_test_country++;
                    }   

应该这样写:

if (!empty($users_id_array[$region_chart2][$country_chart2])) {
    foreach ($users_id_array[$region_chart2][$country_chart2] as $key) {

除非你真的应该使用 $val 而不是 $key

正确的语法是

foreach ($array as $key -> $val)

不要在 foreach 中使用维度:删除 [$region_chart2][$country_chart2]