Php 使用随机序列生成随机数

Php 使用随机序列生成随机数,php,random,series,Php,Random,Series,PHP帮助 我有一系列不同的代码,如下所示: BT4YX***1 Eg:BT4DA1111 BT4YX**X1 Eg:BT4DA11A1 BT4Y**X*1 Eg:Bt4D22A21 $series = array("BT4YXXXX1", "BT4Y**X*1", "BT4Y**X*1", "BT4YX**X1", "BT4YX***1"); $random_series = $series[ rand(0,(count($series)-1)) ]; echo $random_series

PHP帮助

我有一系列不同的代码,如下所示:

BT4YX***1
Eg:BT4DA1111
BT4YX**X1
Eg:BT4DA11A1
BT4Y**X*1
Eg:Bt4D22A21
$series = array("BT4YXXXX1", "BT4Y**X*1", "BT4Y**X*1", "BT4YX**X1", "BT4YX***1");
$random_series = $series[ rand(0,(count($series)-1)) ];
echo $random_series;
我想用以下方法洗牌代码值:

X=A,B,C,D,E
*=0 to 9
因此,最终将拾取一个随机序列,并将洗牌值放入所选序列中,最终生成这样的代码

BT4DA11A1
到目前为止,我做了如下工作:

BT4YX***1
Eg:BT4DA1111
BT4YX**X1
Eg:BT4DA11A1
BT4Y**X*1
Eg:Bt4D22A21
$series = array("BT4YXXXX1", "BT4Y**X*1", "BT4Y**X*1", "BT4YX**X1", "BT4YX***1");
$random_series = $series[ rand(0,(count($series)-1)) ];
echo $random_series;
我能得到随机序列,但我不能把X和*

请帮帮我,伙计们

$series = array(
        'BT4YX***1',
        'BT4YX**X1',
        'BT4Y**X*1',
        'BT4YXXXX1',
    );

$result = preg_replace_callback(
    '/[X*]/',
    function ($matches) {
        switch($matches[0]) {
            case '*' : return range(0,9)[array_rand(range(0,9))];
            case 'X' : return range('A','E')[array_rand(range('A','E'))];
        }
    },
    $series
);

var_dump($result);
编辑

要求PHP>=5.4.0;但是如果你重构了数组去引用,你可以在5.3.0或更高版本中使用它,例如

$series = array(
        'BT4YX***1',
        'BT4YX**X1',
        'BT4Y**X*1',
        'BT4YXXXX1',
    );

$result = preg_replace_callback(
    '/[X*]/',
    function ($matches) {
        switch($matches[0]) {
            case '*' : 
                $range = range(0,9);
                $rand = array_rand($range);
                return $range[$rand];
            case 'X' :
                $range = range('A','E');
                $rand = array_rand($range);
                return $range[$rand];
        }
    },
    $series
);

var_dump($result);

我倾向于使用并让回调函数指定值hanks Mark,但是我遇到了服务器错误。我最近购买了主机服务器。我不想再买一个:(我们不能用普通的PHP版本来做这个吗?)Fine
普通的PHP版本
:PHP5.4.17是一个非常普通的PHP版本。除非你说,否则我不知道你在运行什么版本,所以告诉mePHP version=5.3.26。哇,出色的工作标记(y)…最后一件事->我得到的结果是这样的“数组(4){[0]=>string(9)“BT4YE4091”[1]=>string(9)“BT4YB09B1”[2]=>string(9)“BT4Y97C71”[3]=>string(9)“BT4YEDB1”}“如何回送单个随机字符串?
回送$result[rand(0,count($result)-1];
完美…谢谢马克:)