2016-10-10 9 views
-1

Я пытаюсь записать все значения массива, используя цикл while, но он не работает, какие-либо подсказки?Пока цикл не отображается?

$console = array("Wii","Playstation 3","Xbox","Dator"); 
echo "I like " .$console[0] . " and " . $console[1] . "."; 

while($console <5){ 
    echo "The console you like is: $console <br>"; 
    $x++; 
} 

Мой первый echo виден, но второй один в моем цикле не то, что я сделал не так? Цикл while должен иметь возможность отображать все 4 переменные консолей, но ничего не показывает.

+4

1) Ваш цикл в то время как бесконечный цикл, как $ консоль никогда не меняется 2) $ co nsole - это массив, поэтому проверка, что он меньше 5, не имеет смысла. 3) Вместо этого вы должны использовать foreach. –

+0

'while (count ($ console) <5) {}' возможно – devpro

+0

или из руководства php: 'while (list ($ key, $ val) = each ($ console)) echo $ val."
";' – devpro

ответ

2

Вы можете получить желаемый результат с помощью foreach() и нет необходимости использовать какие-либо дополнительные функции, как count()

Пример:

$console = array("Wii","Playstation 3","Xbox","Dator"); 
foreach ($console as $key => $value) { 
    echo $value."<br/>"; 
} 

Результат:

Wii 
Playstation 3 
Xbox 
Dator 

Также обратите внимание, что while($console <5){ это условие сделает ваш цикл бесконечным, если вы все еще хотите использовать цикл while(), чем вы можете проверить другой ответ, или вы также можете следовать этому примеру.

From the Manual:

<?php 
$console = array("Wii","Playstation 3","Xbox","Dator"); 
while (list ($key, $val) = each ($console)) 
    echo $val."<br/>"; 
?> 

Результат:

Wii 
Playstation 3 
Xbox 
Dator 

Вы также можете изучить инструкцию: http://php.net/manual/en/control-structures.while.php

1

Для того чтобы цикл был динамическим, необходимо указать количество элементов в массиве и использовать переменную счетчика ($x в этом случае) для вывода каждой итерации массива.

<?php 

$console = array("Wii","Playstation 3","Xbox","Dator"); 
echo "I like " .$console[0] . " and " . $console[1] . "."; 

$x=0; 

while($x < count($console)){ 
echo "The console you like is: ". $console[$x] ."<br>"; 
$x++; 
} 


?> 

Подробнее по адресу:

http://php.net/manual/en/function.count.php

1

Как нужно писать/показать все значения из массива с помощью время цикла, необходимо общее число значений счетчика и счетчика. Счетчик отслеживает указатель массива и внутри цикла while, чтобы увеличить его.

$console = array("Wii","Playstation 3","Xbox","Dator"); 
//echo "I like " .$console[0] . " and " . $console[1] . "."; 
$count = count($console); 
$counter = 0 

while($counter <= $count){ 
    echo "The console you like is: ". $console[$counter]." <br>"; 
    $counter++; 
} 

Можно использовать foreach(){} время будет работать лучше для этого типа массива.

Смежные вопросы