PHP生成随机用户名

我正在做一个函数生成随机用户名,如下所示:

public static function nicknames($data) {
    if ($data['request'] == 'nickAvailable') {

        foreach ($data as $value)
            if (is_array($value))
                $nick = $value['nickname'];

        $random = rand(2, 2);
        $nickname = $nick . '_' . $random;

        $count = 3;
        $nicknames = array();
        for ($i = 1; $i <= $count; $i++) {
            $select = self::$db->select('users', 'nickname', array('nickname' => $nickname));

            if (count($select) == 0) {
                $nicknames[] = $nickname;
            } else {
                $count = $count + 1;
            }
        }

        $array = array("status" => 0,
            "errors" => $nicknames,
            "data" => array());

        model::json($array);
    }

}

我唯一的问题是$random只执行一次而不是每次循环.我需要3个不同的用户名才能在数组中,它们必须彼此不同.
如何编辑我的代码来实现这一目标?
谢谢你的任何建议

解决方法:

随机生成器和昵称构建变量放在循环的开头.同时增加允许rand返回的数字范围,因为此时它总是返回2

$usernames = array();
do {

 // inside generate random number, 
 // build nickname, 
 // query to see if its taken, 
 // and if NOT taken, add to the usernames array

} while(count($usernames) < 3);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...