phpforeach循环只输出最后一个数组键值


php foreach loop only outputs last array key value

我有一些代码可以生成0-9之间的4个唯一随机数:-

//Globals
$arr = array();
$gridMax = 9;
$i = 0;

while ( count($arr) < 4 ) {
$x = mt_rand(0, $gridMax);
    if ( !in_array($x, $arr) ) {
        $arr[] = $x;
        }
}
print_r($arr);

我正在尝试创建一个网格,如果对应的网格编号与数组中的4个唯一值之一相同,那么我希望它向$build变量添加一些文本。如果没有,什么也不做:-

while ($i <= $gridMax) {
foreach ($arr as $value) {
    if ($value == $i) { 
        $build = "build";
    } else {
        $build = "";
    }
}
echo "<li class='"map'">{$build}</li>";
$i++;
}

然而,它只适用于最后一个键中的最终值(如图所示):-

http://www.kryptonite-dove.com/sandbox/mt_rand/

有人能给我一些建议吗?我已经缺席编码好几个月了,我的头脑有点模糊!

while ($i <= $gridMax) 
{
    $build = '';
    if(in_array($i, $arr)) $build = 'build';
    echo "<li class='"map'">{$build}</li>";
    $i++;
}

这个怎么样:

while ($i <= $gridMax) 
{
    $build = '';
    foreach ($arr as $value) 
    {
        if ($value == $i) 
        { 
            $build .= "build";
        }   
        else        
        {
            $build .= "";
        }
    }
    echo "<li class='"map'">{$build}</li>";
    $i++;
}