PHP下foreach()错误提示:Warning: Invalid argument supplied for foreach()
PHP Warning: Invalid argument supplied for foreach() in 的解决方法
解决方案:
错误提示 Warning:Invalid argument supplied for foreach() 的中文意思是说foreach需要是一个数组而给它的是一个无效的参数.

很多时候这个数组是取自某些数据源,如果数组为空,就会出现错误警告,为了防止这种错误警告,应该在遍历之前对数组变量进行一个判断,如果该变量不是一个有效数组,可以对该变量加个if判断语句,还可以设置该变量为一个空数组即array():
就是在循环前面加上判断,直接使用is_array判断给的值是不是为数组,代码如下:
if(is_array($data)){foreach($data as $value){代码}}
在php中使用foreach循环遍历时报Invalid argument supplied for foreach()错误,是因为循环的数据不是一个有效的数组。
或者我们先定义一个空数组,然后为数组赋值,再进行foreach操作:
$data = array();$data = ... ; //数组赋值操作;foreach($data as $value){代码}
因此我们只要在foreach之前判断一下数据源即可。
总结:
原代码foreach($arr as $key => $value){代码块}改为:if(is_array($arr)) //add{foreach($arr as $key => $value){代码块}} //add或者foreach((array)$arr as $key => $value){代码块}