如何从洗牌中获取全部值?我需要生成一个唯一的字母数字代码,该代码也将具有随机模式


How do I take full values from shuffled foreach? I need to generate a unique alphanumeric code that will also have shuffled pattern

$num = range('0', '9');
$alpha = range('A','Z');
$num[mt_rand(0, 9)];
$alpha[mt_rand(0, 25)];
$res = array($num[mt_rand(0, 9)], $alpha[mt_rand(0, 25)], $num[mt_rand(0, 9)], $alpha[mt_rand(0, 25)]);
shuffle($res);
foreach($res as $rand){
    $result = $rand;
}
echo $result;

我想生成也会改变模式的字母数字代码(例如 D8M4、23EH、4OP4(。但是当我尝试将$result带到foreach之外时,它只显示一个随机数量的字母。如何实现此随机字母数字代码?

您可以简单地使用内爆函数,而不是foreach。

<?php
    $num = range('0', '9');
    $alpha = range('A','Z');
    $num[mt_rand(0, 9)];
    $alpha[mt_rand(0, 25)];
    $res = array($num[mt_rand(0, 9)], $alpha[mt_rand(0, 25)], $num[mt_rand(0, 9)], $alpha[mt_rand(0, 25)]);
    shuffle($res);
    echo implode($res);

将每个字符/数字添加到数组中并在末尾内爆。

    $num = range('0', '9');
    $alpha = range('A','Z');
    $num[mt_rand(0, 9)];
    $alpha[mt_rand(0, 25)];
    $res = array( $num[mt_rand(0, 9)], $alpha[mt_rand(0, 25)], $num[mt_rand(0, 9)], $alpha[mt_rand(0, 25)] );
    shuffle( $res );
    foreach( $res as $rand ) $result[] = $rand;
    echo implode( '',$result );