未知错误(in_array() 期望参数 2 是数组,给定字符串)


unknow ERROR (in_array() expects parameter 2 to be array, string given)

正在使用以下函数来声明两个用户之间的朋友函数,但我收到以下错误

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)));
}