Эхо в одной строке, но в цикле - PullRequest
0 голосов
/ 24 октября 2018

У меня есть следующий код:

$data  = ['a','b','c'];
$total = count($data);
for($i = 0; $i < $total; $i++) {
    echo $data;
}

Что мне нужно, когда код работает в cmd, cmd будет выводить каждый символ, чтобы заменить предыдущий символ на дисплее, вот так:

enter image description here

a >> затем меняется, чтобы показать b >> затем меняется, чтобы показать c

... тольков одну строку.

представьте, что в строке 3 команды cmd будет попеременно отображаться слово (a -> b -> c)

Я пробовал с "\ r", но в cmd ничего не получается.Пожалуйста, вы можете помочь?

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Надеюсь, это то, что вы хотите ...

$data = ['a','b','c'];
$total = count($data);

for ($i=0; $i < $total; $i++){
    echo $data[$i] . "\n";
}
0 голосов
/ 24 октября 2018

Полагаю, это то, что вы хотите.Поправьте меня если я ошибаюсь.Сначала печатается a, затем заменяется на b, затем заменяется на c.

$data  = ['a','b','c'];
$total = count($data);
for($i = 0; $i < $total; $i++) {
    echo "\033[1D";      // Move 1 character backward
    echo $data[$i];  
    sleep(1);           // wait for a while, so we see the animation
}
0 голосов
/ 24 октября 2018

сделать так:

$data = ['a','b','c'];

перейти с foreach, как показано ниже:

foreach($data as $d) {
   echo "\033[1D";
    echo $d;
    sleep(1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...