我试图比较2个数组并得到此错误。警告:array_diff():参数#1不是数组。不确定为什么我得到这个错误一个sql
结果的while语句是一个数组。
为什么我会收到此错误,如何更正错误?
$dataArray = array('234534,345345,445667');
if($arrayCheck = $mysqli->prepare("SELECT FRIEND_ID FROM FRIENDS_DIR WHERE ID=? AND ONLINE=1")){
$arrayCheck->bind_param('s', $dataA);
$arrayCheck->execute();
$arrayCheck->bind_result($FidS);
$arrayCheck->store_result();
if($arrayCheck->num_rows > 0){
while ($arrayCheck->fetch()) {
if (array_diff($FidS, $dataArray)){
$res = "NoSame";
}
}
}
}
echo $res;
您收到此错误是因为$FidS
不是数组而是数字或字符串(取决于您的数据库表定义)。
请注意,您的SQL
查询返回FRIEND_ID
而不是数组 - 如果您想使用array_diff
将代码更改为:
if($arrayCheck->num_rows > 0){
$resSqlData = [];
while ($arrayCheck->fetch()) {
$resSqlData[] = $FidS;
}
if (array_diff($resSqlData , $dataArray)){
$res = "NoSame";
}
}
}