php - 使用 php 数组 shuffle 我的号码仍在重复。解决方案?
问题描述
我声明我在 php 方面不是很有经验,我可能会使用错误的术语。我正在尝试编写一个程序,它为我生成两个具有预设静态维度的数字数组,它们在同一索引或相邻索引(+ - 1,+ -2)中不能具有相同的值。为此,我使用了一个 while 循环来检查这些参数,当它们不被尊重时,它会为我重新生成第二个数组。但是当第二个数组重新生成时,数字会重复。
<?php
$numbers = range(1, 22);
shuffle($numbers);
$numbers2 = range(1,22);
shuffle($numbers2);
foreach ($numbers as $key => $value)
{
$n1 = $key -1;
$n11 = $key +1;
$n2 = $key -2;
$n22 = $key +2;
if($key == 0)
{
$n1 = $key;
$n11 = $key +1;
$n2 = $key;
$n22 = $key +2;
}
elseif($key == 1)
{
$n1 = $key -1;
$n11 = $key +1;
$n2 = $key;
$n22 = $key +2;
}
elseif($key == 21)
{
$n1 = $key -1;
$n11 = $key;
$n2 = $key-2;
$n22 = $key;
}
elseif($key == 20)
{
$n1 = $key -1;
$n11 = $key +1;
$n2 = $key-2;
$n22 = $key;
}
while ($numbers2[$key] == $numbers[$key] ||
$numbers2[$key] == $numbers[$n1] ||
$numbers2[$key] == $numbers[$n11] ||
$numbers2[$key] == $numbers[$n2] ||
$numbers2[$key] == $numbers[$n22])
{
shuffle($numbers2);
}
echo "$numbers[$key] - $numbers2[$key]<br>";
}
?>
解决方案
推荐阅读
- mysql - MYSQL - 警告:#1287 在表达式中设置用户变量已弃用,将在未来版本中删除
- python - 用户数据目录已被使用,请为 --user-data-dir 参数指定一个唯一值,或者不要使用 --user-data-dir
- linux - 从 WSL 和 Linux 交叉编译导致缺少入口点 DeleteCriticalSection
- twitter - 超出速率限制,尝试访问“关注者”列表时出现代码 88
- python - 关于python中同一个键的多个值的问题
- python-3.x - 我如何让reportlab 在服务器上运行django?
- javascript - 获取 Array JavaScript 中最年轻和最年长的人
- python-3.x - 树视图图像不显示
- html - 如何将一个 div 类与不同的 CSS 图像样式属性配对
- android - 我正在从 Firebase 实时数据库中获取数据,但我得到空对象