Цикл php foreach выводит только последнее значение ключа массива - PullRequest
0 голосов
/ 15 января 2012

У меня есть код для генерации 4 уникальных случайных чисел в диапазоне от 0 до 9: -

//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 -дав.com / песочница / mt_rand /

Кто-нибудь может дать мне несколько советов?Я отсутствовал в кодировании в течение нескольких месяцев, и мой разум немного затуманен!

Ответы [ 2 ]

1 голос
/ 15 января 2012
while ($i <= $gridMax) 
{
    $build = '';
    if(in_array($i, $arr)) $build = 'build';

    echo "<li class=\"map\">{$build}</li>";
    $i++;
}
1 голос
/ 15 января 2012

Что по этому поводу:

while ($i <= $gridMax) 
{
    $build = '';

    foreach ($arr as $value) 
    {
        if ($value == $i) 
        { 
            $build .= "build";
        }   
        else        
        {
            $build .= "";
        }
    }

    echo "<li class=\"map\">{$build}</li>";
    $i++;
}
...