Strpos不起作用。我用它来搜索号码

时间:2013-04-18 09:35:51

标签: php strpos

我正在尝试建造一个带有炸弹的桌子(6x6)。我正在使用以下方法将36个区块中的10个炸弹随机化。但它每次都给我炸弹。

    $i = 1;
    $numbers = null;
    $j = 0;
    while ($j < 10)
    {
        $sample = rand (1,36);
        if (strpos($numbers, $sample) === false) 
        {
            $numbers = $numbers."".$sample.",";
            $j++;
        }
    }

    echo $numbers;

    while ($i < 37)
    {
        if (strpos($numbers, $i) !== false)
        {
            echo '<td><button value="safe" onclick="bombcheck(this.id)"
            id="'.$i.'" class="closed"></button></td>';
        }
        else
        {
            echo '<td><button value="bomb" onclick="bombcheck(this.id)"
            id="'.$i.'" class="closed"></button></td>';
        }
        if ($i%6 == 0) 
        {
            echo "</tr><tr>";
        }
        $i++;
    }

1 个答案:

答案 0 :(得分:2)

你正以错误的方式接近这一点。由于您要累积10个数字,请使用数组来保存它们。此外,由于你想从36个中选择10个(这是一个相当大的一小部分),最好的方法是:

$squares = array_fill_keys(range(1, 36), true);
$bombs = array_rand($squares, 10);

然后你可以检查方形$ x是否有一个带

的炸弹
$hasBomb = in_array($x, $bombs);