有人可以帮我确定重复号码的匹配号码吗?

时间:2019-07-14 11:31:38

标签: php

我有一个脚本,可以创建两组数字: 1.随机数 2.重复编号的匹配编号列表

但是重复编号的匹配编号列表无法正常工作。

让我举个例子: 随机数 5-14-5-4-15-12-8-10-18-13-25-15-14-2-7-24-22-13-22-16-18-10-11-25- 2-18-9-19-8-1-16-1-23-0-16-17-23-21-20-22-21-9-4-20-24-19-16-9-17 < / p>

比赛号码 3-11-2-6-2-3-2-2-2-2-2-4-3-2-4-3-4-2-2-2-2-2-2-2-2- 2

如果您查看随机数,则会看到第一个匹配数是正确的。在三个数字之后,我们有一个匹配项,因此匹配数字为3。然后我们从5开始计数,下一个匹配数字也是正确的,它是11,在数字15处结束。但是,在两个数字之后应该有一个匹配项,但是这个无法正常工作。

有人可以在这里帮助我吗?

<?php
$existing = [];
$repeat_numbers = [];

for ($rnd=1;$rnd<=50;$rnd++)
{
$randoms[] = mt_rand(0,25);
}
echo implode('-',$randoms).PHP_EOL;

echo "<br><br>";

$i = 1;
 foreach($randoms as $rnd){
 if(in_array($rnd,$existing)){
     $repeat_numbers[] = $i;
     $i=1;
 }
 $existing[] = $rnd;
 $i++;
 }
echo implode('-',$repeat_numbers);
?>

1 个答案:

答案 0 :(得分:0)

根据您的预期比赛,“比赛号码应为:3-11-8-8-7-6-8”

<?php
$existing = [];
$repeat_numbers = [];
$randoms = explode('-','5-14-5-4-15-12-8-10-18-13-11-25-15-14-2-7-24-22-13-22-16-18-10-11-25-2-18-9-19-8-1-16-1-23-0-16-17-23-21-20-22-21-9-4-20-24-19-16-9-17');
//print_r($randoms);
$i = 0;
foreach($randoms as $rnd){
   $i++; 
   if(in_array($rnd,$existing)){
       $repeat_numbers[] = $i;
       $i=1;
       $existing = [];
   }
   $existing[] = $rnd; 
}
echo implode('-',$repeat_numbers);
?>

工作演示: https://3v4l.org/HbFnV

然后只需添加它而不是硬编码的$random字符串变量,并照常使用其余代码。

<?php
$existing = [];
$repeat_numbers = [];
for ($rnd=1;$rnd<=50;$rnd++)
{
  $randoms[] = mt_rand(0,25);  // see this block for generating randoms
}
$i = 0;
foreach($randoms as $rnd){
   $i++; 
   if(in_array($rnd,$existing)){
       $repeat_numbers[] = $i;
       $i=1;
       $existing = [];
   }
   $existing[] = $rnd; 
}
echo implode('-',$repeat_numbers);
?>

工作演示: https://3v4l.org/TvD4S