Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么中奖号码计算不正确?_Php - Fatal编程技术网

Php 为什么中奖号码计算不正确?

Php 为什么中奖号码计算不正确?,php,Php,我有一个生成随机数的脚本。从这个生成的随机数列表中,脚本创建赢号。赢的数字只是简单的计数,当一个数字赢了,当有一个重复的数字赢了。它现在这样做,但它开始计数后,每次获胜,但它必须开始计数,在赢的数字。这更清楚吗?这是一个在轮盘赌中创建系统的脚本,所以每次都只需要计算到赢为止 <?php $existing = []; $win_numbers = []; for ($rnd = 1; $rnd <= 80; $rnd++) { $randoms[] = mt_rand(0, 36

我有一个生成随机数的脚本。从这个生成的随机数列表中,脚本创建赢号。赢的数字只是简单的计数,当一个数字赢了,当有一个重复的数字赢了。它现在这样做,但它开始计数后,每次获胜,但它必须开始计数,在赢的数字。这更清楚吗?这是一个在轮盘赌中创建系统的脚本,所以每次都只需要计算到赢为止

<?php

$existing = [];
$win_numbers = [];

for ($rnd = 1; $rnd <= 80; $rnd++) {
$randoms[] = mt_rand(0, 36);
}

echo "Random Number:<br>";
echo implode('-', $randoms).PHP_EOL;

echo "<br><br>";

$i = 1;
foreach ($randoms as $rnd) {
if (in_array($rnd, $existing)) {
    $win_numbers[] = $i;
    $i = 1;
    $existing = [];
} else {
    $existing[] = $rnd;
    $i++;
}
}

echo "Win Numbers:<br>";
echo implode('-', $win_numbers);

?>
我希望这有助于更多地解释我的意思。这次我已经详细解释过了。

改变这个

for ($rnd = 1; $rnd <= 80; $rnd++) {
$randoms[] = mt_rand(0, 100);
}
对此

for ($rnd = 1; $rnd <= 20; $rnd++) {
$randoms[] = "".mt_rand(0, 100);
}

我不明白你想在这里实现什么,你能编辑你的帖子并解释一下吗?我已经编辑过了,并且说得更清楚了。请运行脚本以了解我的意思。您的编辑使它实际上不那么清晰,您删除了一些解释。对我来说,你的预期结果似乎不符合,如果你从比赛后的下一个数字开始从1开始计算,你的比赛位置应该是8和8。您应该明确代码当前给出的结果是什么,我们不应该被迫从代码中创建一个脚本来知道您是正确的。第一个匹配是正确的,即8。但是我们应该在8点开始新的计数,然后下一场比赛是9点。但它不能做到这一点。它作为匹配als 8给出,因为它不计算第一个数字。对不起,我不明白这背后的逻辑。在您的示例中,“4”和“7”也出现多次。为什么不把它们算作匹配数呢?第一个匹配数是正确的,但是下面的匹配数是1到7,所以8应该是7。