unknow ERROR(in_array()期望参数2为数组,给定字符串)

时间:2016-02-22 03:19:31

标签: php arrays function parameters

我正在使用以下功能来说明两个用户之间的朋友功能,但我得到以下错误

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

1 个答案:

答案 0 :(得分:1)

就像上面的评论一样,如果$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)));
}