正在使用以下函数来声明两个用户之间的朋友函数,但我收到以下错误
Warning: in_array() expects parameter 2 to be array, string given in C:'Users'sanoj'Documents'NetBeansProjects'PDO friends 2'userData.php on line 60
第 60 行是这个if (in_array($friend, $f)) {
,功能是波纹管
function isFriend($user, $friend) {
$isFriend = false;
$friends = getUsersFriends($user);
foreach ($friends as $f) {
if (in_array($friend, $f)) {
$isFriend = true;
}
}
return $isFriend;
}
就像
上面的评论一样,如果$friends
确实只是一个平面数组,只需单独使用in_array
即可。无需foreach
.发生的情况是,您正在应用每个字符串的in_array
,这没有意义。将in_array
应用于整个字符串数组:
function isFriend($user, $friend) {
return in_array($friend, getUsersFriends($user));
}
请注意,Sanoj != sanoj
.最好更改朋友集合的所有上限以与strtolower
ed $friend
进行比较:
想法:
function isFriend($user, $friend) {
return in_array(strtolower($friend), array_map('strtolower', getUsersFriends($user)));
}