我想做的事情就像记忆游戏一样,但我保持不能得到与输出相同的数字
$numbers = range(1, 15);
shuffle($numbers);
foreach($numbers as $key){
echo $numbers[array_rand($numbers)];
break;
}
现在输出将是这样的
4 2 3 3
1 5 3 6
2 3 4 5
10 9 8 10
但我怎么做rand数组和相同的2数组编号,这是我可以匹配的数字。
我想要的是
2 3 1 4
3 4 2 1
5 6 9 7
7 9 6 5
所以这样我可以得到2个相同数字的比赛
任何想法怎么做?
感谢
答案 0 :(得分:0)
首先,你必须做一个带有几个值的数组
// Generate array with values from 1 to 8
$arNumbers = range(1, 8);
// Duplicate the array so get copy of each number
$arNumbers = array_merge($arNumbers, $arNumbers);
// Shuffle the array
shuffle($arNumbers);
// And now display them
foreach($arNumbers as $nNumber)
{
// Do some business
}
希望有所帮助:)
答案 1 :(得分:0)
你的问题有点令人困惑和模糊。我推断你想要随机播放并以随机顺序显示一组数字,每个数字两个。要做到这一点:
<?php
$numbers = range(1, 5);
$numbers = array_merge($numbers, $numbers);
shuffle($numbers);
echo implode(' ', $numbers);
例如,这会输出3 5 1 5 1 2 3 4 2 4
。
代码中array_rand()
的{{1}}调用完全没有意义。如果以上不是您想要的,请修改您的问题以使其更清晰。
答案 2 :(得分:0)
试试这个。这是一种简单的方式。
$numbers=range(1, 15);
//从$ numbers数组中获取4个唯一的随机密钥。
$rand_keys = array_rand($numbers, 4);
//使用打印出随机数 //随机密钥。
foreach ($rand_keys as $k=>$i) {
echo $numbers[$i]." ";
}
希望这会对你有帮助......
答案 3 :(得分:0)
如果我告诉你,你可以通过以下方式实现你想要的目标:
// make sure these are even numbers
$rows = 4;
$cols = 4;
$set = range(1, ($rows * $cols) / 2);
$numbers = array_merge($set, $set);
shuffle($numbers);
foreach (array_chunk($numbers, $cols) as $row) {
foreach ($row as $col) {
printf('%-5d', $col);
}
echo "\n";
}
输出:
3 7 2 1
4 6 8 5
6 3 8 4
2 5 7 1
答案 4 :(得分:-1)
做类似的事情:
$numbers = range(1, 15);
shuffle($numbers);
$used_numbers = array();
foreach($numbers as $key){
$this_number = $numbers[array_rand($numbers)];
$used_numbers[] = $this_number;
echo $this_number;
break;
}
$_SESSION['numbers'] = $used_numbers;
然后你可以使用$ _SESSION来访问另一个页面上的数字(可能在重新加载之后),或者使用相同的$ used_numbers数组来访问它们。
如果您尝试:
$numbers = range(1, 15);
shuffle($numbers);
$used_numbers = array();
foreach($numbers as $key){
$this_number = $numbers[array_rand($numbers)];
$used_numbers[] = $this_number;
echo $this_number;
break;
}
echo '<br />';
foreach($used_numbers AS $number) {
echo $number;
}
您将看到它返回相同的数字。