当变量的顺序不同时,PHP函数不能正确运行


PHP Function not functioning correctly with array when variables are in a different order

我有一个PHP函数。该函数检查名称,如果它们不存在,则终止。它从名称中去掉空格,如果当前登录用户的名称尚未在列表中,则添加当前登录用户的名称。

function create_group($name, $description, $invites){
    global $link;
    $invitesarr = explode(',', $invites);
    $user_id = $_SESSION['user_id']; //avoids issues with quotations (either invalid quotation for referring to PHP variable or repeated double quotes)
    $result = mysqli_query($link, "SELECT `username` FROM `users` WHERE `user_id` = '$user_id'");
    foreach($result as $resul){
        foreach($resul as $resu){
            $logged_in_username = $resu;
        }}
    if(in_array($logged_in_username, $invitesarr)){
    }else{
        $invitesarr[] = $logged_in_username;
    }
    foreach($invitesarr as $invite) {
        $idres = mysqli_query($link, "SELECT `user_id` FROM `users` WHERE `username` = '$invite'");
        $invite = preg_replace('/'s+/', '', $invite);
        print $invite;
        if(mysqli_num_rows($idres) == 0) {
            exit("1 or more of the users that you entered do(es) not exist!");
        }
    }
    $name = mysqli_real_escape_string($link, $name);
    $description = mysqli_real_escape_string($link, $description);
    $names = mysqli_query($link, "SELECT `group_name` FROM `groups` WHERE `group_name` = '$name'");
    $descriptions = mysqli_query($link, "SELECT `group_description` FROM `groups` WHERE `group_description` = '$description'");
    if(mysqli_num_rows($names) == 0 && mysqli_num_rows($descriptions) == 0) {
        mysqli_query($link, "INSERT INTO `groups` (`group_name`, `group_description`) VALUES ('$name', '$description')");
    } else {
        echo 'Group with that name/description already exists.';
    }
    $result = mysqli_query($link, "SELECT `group_id` FROM `groups` WHERE `group_name` = '$name'");
    foreach($result as $resul) {
        foreach($resul as $resu) {
            $group_id = $resu;
        }
    }
    foreach($invitesarr as $invite) {
        $idres = mysqli_query($link, "SELECT `user_id` FROM `users` WHERE `username` = '$invite'");
        foreach($idres as $idarr) {
            foreach($idarr as $id) {
                mysqli_query($link, "INSERT INTO `group_members` (`group_id`, `user_id`, `confirmed?`) VALUES ('$group_id', '$id', 0)");
            }
        }
    }
}

它工作得很好,除了当用户输入他们的名字并进入$invitesarr数组时。当我在检查名字的foreach语句中放入print语句时,我注意到,当用户的名字没有输入到字段中时,这些名字的顺序是name1 loggedinname,而当我输入用户的名字时,它变成了loggedinname name1。

您需要输入:

$invite = preg_replace('/'s+/', '', $invite);

前行:

$idres = mysqli_query($link, "SELECT `user_id` FROM `users` WHERE `username` = '$invite'");