如何生成唯一的用户名 - PHP

时间:2017-04-05 13:42:30

标签: php

我在数组中有用户名字符串。我想生成一个唯一的用户名字符串,该字符串不会在数组中退出。(可能在用户名后面有一些数字)

我如何实现这一目标?

我总结了代码:

function generate_unique_username(){
    $firstname      = "james";//data coming from user
    $lastname       = "oduro";//data coming from user
    $new_username   = $firstname.$lastname;
    $usersnames     = array("james39","oduro32","kwame93","elvisasante","frimpong32","edward32","jamesoduro");

    //Loop through ARRAY usernames and check elements against VAR $new_username

    if (in_array($new_username, $usersnames)) {
        //generate new username which is not inside array
        //the new generated string should also be check against array to ensure is doens not exit.


    }else{
        return $new_username;
    }
}

谢谢。

1 个答案:

答案 0 :(得分:0)

从存储的数组生成用户名不是一个好习惯,我建议你使用数据库。

如果您使用数据库而不是数组,则可以使用最佳方法生成唯一用户名,如下所示:

function generate_unique_username(){
    $firstname      = "james";//data coming from user
    $lastname       = "oduro";//data coming from user
    $new_username   = $firstname.$lastname;

    /* Note: writing here pseudo sql code, replace with the actual php mysql query syntax */
    $query = "SELECT COUNT(id) as user_count FROM user WHERE username like '%".$new_username."%'";
    $result = mysql_query($query);
    $count = $result['user_count'];

    if(!empty($count)) {
        $new_username = $new_username . $count;
    }

    return $new_username;
}