Php for循环,2倍相同id,随机

Php for循环,2倍相同id,随机,php,html,Php,Html,我试图创建一个记忆游戏,但我遇到了一个问题,我不能循环通过所有的图像与2倍相同的id,所以2x id1,2x id2 2x id3等。同样的id需要随机分配给图像 PHP: class Kaart { public function getCard() { for ($x = 1; $x <= 16; $x++) { echo "<img src='img/card_back.jpg' id=RANDOMID>";

我试图创建一个记忆游戏,但我遇到了一个问题,我不能循环通过所有的图像与2倍相同的id,所以2x id1,2x id2 2x id3等。同样的id需要随机分配给图像

PHP:

class Kaart
{
    public function getCard()
    {
        for ($x = 1; $x <= 16; $x++) {
            echo "<img src='img/card_back.jpg' id=RANDOMID>";
        }
    }
}
Kaart类
{
公共函数getCard()
{

对于($x=1;$x当您创建
Kaart
对象时,这将通过合并您传入的数字范围的两个列表(合并两个范围-
range(1,$count)
)创建一个组,然后洗牌

然后展示牌只意味着在洗过的牌堆上循环

class Kaart
{
    private $deck = null;

    public function __construct( $count )   {
        // Create list with 2xid's
        $this->deck = array_merge(range(1,$count), range(1,$count));
        // randomize the deck
        shuffle($this->deck );
    }
    public function getCard()
    {
        // Loop over the randomized dech
        foreach ( $this->deck as $card )    {
            echo "<img src='img/card_back.jpg' id='{$card}'>";
        }
    }
}

// Create deck with 2x8 cards
$deck = new Kaart(8);
$deck->getCard();
Kaart类
{
私有$deck=null;
公共函数构造($count){
//使用2xid创建列表
$this->deck=array_merge(范围(1,$count),范围(1,$count));
//随机化甲板
洗牌($this->deck);
}
公共函数getCard()
{
//在随机dech上循环
foreach($this->将其作为$card组合){
回声“;
}
}
}
//使用2x8卡创建牌组
$deck=新卡亚特(8);
$deck->getCard();

您可以使用
数组\u chunk
将同一id随机分配2次

 $img = [];
    for ($x = 1; $x <= 16; $x++) {
        $img[] = $x;
    }
    $i=1;
    foreach( array_chunk($img, 2, true) as $k => $array){
        foreach($array as $val){
            echo "<img src='img/card_back.jpg' data-id=".$i.">"; 
        }

        $i++;
    }
$img=[];
对于($x=1;$x$array){
foreach($val形式的数组){
回声“;
}
$i++;
}

阅读关于创建包含所有id的数组的内容2次。将数组洗牌。您不应该有重复的id-也许可以改用
数据id
?!