Php 字符串助手;数组和子数组

Php 字符串助手;数组和子数组,php,string,Php,String,我的问题是,我正在使用下面显示的随机字符串生成器,我没有使用“alpha”,我使用的是“fourlet”。唯一的问题是这个在数组中,而那个 substr($pool, mt_rand(0, strlen($pool) -1), 1); 不作为数据数组的随机创建者工作。有人能帮忙吗 下面是帮助器的完整代码 { function random_string($type = 'alnum', $len = 8) { switch($type) { case 'basi

我的问题是,我正在使用下面显示的随机字符串生成器,我没有使用“alpha”,我使用的是“fourlet”。唯一的问题是这个在数组中,而那个

substr($pool, mt_rand(0, strlen($pool) -1), 1);
不作为数据数组的随机创建者工作。有人能帮忙吗

下面是帮助器的完整代码

{
function random_string($type = 'alnum', $len = 8)
{
    switch($type)
    {
        case 'basic'    : return mt_rand();
            break;
        case 'alnum'    :
        case 'numeric'  :
        case 'nozero'   :
        case 'alpha'    :

                switch ($type)
                {
                    case 'alpha'    :   $pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
                        break;
                    case 'fourlet'  :   $pool = array('my', 'fun', 'zone', '12', '24', '37');
                        break;
                }

                $str = '';
                for ($i=0; $i < $len; $i++)
                {
                    $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
                }
                return $str;
            break;
        case 'unique'   :
        case 'md5'      :

                    return md5(uniqid(mt_rand()));
            break;
        case 'encrypt'  :
        case 'sha1' :

                    $CI =& get_instance();
                    $CI->load->helper('security');

                    return do_hash(uniqid(mt_rand(), TRUE), 'sha1');
            break;
    }
}
}


所以我做了一些改变。希望这对你有帮助

 <?php
//$input=arrayNeo、Morpheus、Trinity、Cypher、Tank; //$rand\u keys=array\u rand$input,2; //echo$input[$rand_keys[0]]\N //echo$input[$rand_keys[1]]\n

函数随机_字符串$type='alnum',$len=8 { 开关$type { 案例“基本”:返回mt_rand; 打破 案例“alnum”: 大小写“数字”: “零号”案例: 默认值:

    switch ($type)
    {
    case 'alpha'    :   $pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        break;
    case 'fourlet'  :   $pool = array('my', 'fun', 'zone', '12', '24', '37');
        break;
    }

    $str = '';
        if(gettype($pool)=='string'){
            for ($i=0; $i < $len; $i++){
                $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
            }
        }   
        else if(gettype($pool)=='array'){       
            $rand_keys = array_rand($pool,4);
         $str=$pool[$rand_keys[0]].$pool[$rand_keys[1]].$pool[$rand_keys[2]].$pool[$rand_keys[3]];

        }       


    return $str;
    break;
case 'unique'   :
case 'md5'      :

    return md5(uniqid(mt_rand()));
    break;
case 'encrypt'  :
case 'sha1' :

    $CI =& get_instance();
    $CI->load->helper('security');

    return do_hash(uniqid(mt_rand(), TRUE), 'sha1');
    break;
}
}

变量dumprandom字符串'fourlet',8


?>

hmmm。遗憾的是,这返回的是一个YOYMOYM字符串,而不是实际的单词:那么您想要实际的单词吗?是的!对不起,应该更清楚。每个数组值“my”、“fun”等都需要保留为一个完整的单词,或者数字需要保留为“12”或“24”,并且不能混合。因此可能出现的结果,例如“zone12my37”或“funmy372”4':它符合你的要求吗?很有魅力!你,罗希特·库马尔·乔杜里先生是一个传奇,应该得到奖励