在16位整数中,从每四位数字中提取一位数字,并将其存储在php中的变量中

在16位整数中,从每四位数字中提取一位数字,并将其存储在php中的变量中,php,regex,Php,Regex,我已经生成了一个16位数字,我想从这个16位数字的每4位中提取一个数字。例如:12345678992345678。我想从1234中提取2,从5678中提取7,从9034中提取3,从5678中提取7。然后将其存储在另一个变量$a中。提取将以随机方式进行。这里有一个线性: $s = $string[rand(0,3)].$string[rand(4,7)].$string[rand(8,11)].$string[rand(12,15)]; echo $s; for($s='',$i=0;$i<

我已经生成了一个16位数字,我想从这个16位数字的每4位中提取一个数字。例如:12345678992345678。我想从1234中提取2,从5678中提取7,从9034中提取3,从5678中提取7。然后将其存储在另一个变量$a中。提取将以随机方式进行。

这里有一个线性:

$s = $string[rand(0,3)].$string[rand(4,7)].$string[rand(8,11)].$string[rand(12,15)];
echo $s;
for($s='',$i=0;$i<10; $s.=$string[rand($i,$i+=3)]);  
echo $s;
另一艘班轮:

$s = $string[rand(0,3)].$string[rand(4,7)].$string[rand(8,11)].$string[rand(12,15)];
echo $s;
for($s='',$i=0;$i<10; $s.=$string[rand($i,$i+=3)]);  
echo $s;
对于($s='',$i=0;$i你可以试试这个-

$d = '1234567892345678';

$s = str_split($d, 4); // split in 4 digits

$n = array_map(function($x) {
    return substr($x, rand(0, 3), rand(1, 1)); // extract single digit random number
}, $s);

$n
将保留随机数。

我回答这个问题可能会迟到,但您只需使用
strlen
函数和
for
循环即可

$str = "1234567892345678";
for($i = 0; $i < strlen($str);$i += 4){
    echo $str[$i+rand(0,3)];
}
$str=“1234567892345678”;
对于($i=0;$i
2 from 9034??告诉使用您要提取数字的模式我不知道如何对这件事进行编码。完全空白。请查看您尝试的内容,然后我们帮助您添加您尝试过的代码,并解释您希望遵循的单位数模式。您想从这4位数字或模式中提取任何随机数吗?他说不想删除数字,他想提取4位数字并将该4位数字保存在变量中OK,现在它已修复。它将始终提取第3位数字。不是随机的。您在问题中没有提到任何关于随机性的内容。如果需要,您需要再次将字符串转换为数字,因为NumberHP将自动将其转换为数字。Just将数组映射包在一个内爆中,你就得到了。这就是OP的问题所指的意思。$string[rand(0,3)]。$string[rand(4,7)]。$string[rand(8,11)]。$string[rand(12,15)];