【发布时间】:2025-12-01 19:10:02
【问题描述】:
我有一个闪存卡数组,使用 shuffle 我输出了 15 张独特的卡片,每张 3 张用于 5 个不同的类别。
我想做的是在同一个网页上为大约十几个人创建这些卡片组,但我不知道如何制作它,所以每个完整的集合都是独一无二的,并且不会重复给任何其他用户的集合。
带有简要说明的简短代码示例对我最有帮助。
这是我根据需要修改的代码。变化不大。
<?php
/* original source:
* 3d10-engine.php
* by Duane Brien
*/
if (empty($_POST)) {
for ($i = 1; $i < 16; $i++) {
$numbers['ALL'][] = $i;
}
$picks = array();
$letters = array ('ALL');
foreach ($letters as $letter) {
for ($i = 0;$i < 10;$i++) {
shuffle($numbers[$letter]);
$chunks = array_chunk($numbers[$letter], 5);
$cards[$i][$letter] = $chunks[0];
if ($letter == 'N') {
$cards[$i][$letter][2] = ' '; // Free Space
}
}
foreach ($numbers[$letter] as $number) {
$balls[] = $letter.$number;
}
shuffle($balls);
}
$cardsstr = serialize($cards);
$ballsstr = serialize($balls);
$picksstr = serialize($picks);
} else {
$cards = unserialize($_POST['cardsstr']);
$balls = unserialize($_POST['ballsstr']);
$picks = unserialize($_POST['picksstr']);
array_unshift($picks, array_shift($balls));
echo "<h1>Just Picked: " . $picks[0] . "</h1>";
$cardsstr = serialize($cards);
$ballsstr = serialize($balls);
$picksstr = serialize($picks);
}
?>
Picks : <?php echo implode(',', $picks) ?>
<form method='post'>
<input type='hidden' name='cardsstr' value='<?php echo $cardsstr ?>' />
<input type='hidden' name='ballsstr' value='<?php echo $ballsstr ?>' />
<input type='hidden' name='picksstr' value='<?php echo $picksstr ?>' />
<input type='submit' name='cards' value='next number' />
</form>
<a href="3d10-engine.php">Start Over</a>
<?php
foreach ($cards as $card) {
echo "<table border='1'>";
echo "<tr><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td></tr>";
for ($i = 0; $i < 5; $i++) {
echo "<tr><td>" . $card['B'][$i] . "</td><td>" .$card['I'][$i] . "</td><td>" . $card['N'][$i] . "</td>";
echo "<td>" . $card['G'][$i] . "</td><td>" . $card['O'][$i] . "</td></tr>";
}
echo "</table>";
}
?>
【问题讨论】:
-
介意发布您当前的代码吗?
-
请展示你到目前为止所做的代码,无论它是否有效——它只会更好地展示你想要实现的目标。
shuffle对我来说也不错,我不明白为什么它不适合你。 -
好像是功课……
-
@Benoit,这不是作业。
-
@Sebastian:即使,这也不是问题。只需在问题中说出来,您就会得到更广泛的答案,然后解释事情是如何运作的。