Php для цикла с 2 переменными?

Можно ли сделать это? (вот мой код)

for ($i = 0 ; $i <= 10 ; $i++){ for ($j = 10 ; $j >= 0 ; $j--){ echo "Var " . $i . " is " . $k . "<br>"; } } 

Я хочу что-то вроде этого:

var 0 – 10

var 1 – 9

var 2 – 8 …

Но мой код неправильный, он дает огромный список. Php гуру, помогите мне!

Solutions Collecting From Web of "Php для цикла с 2 переменными?"

Попробуй это:

 for ($i=0, $k=10; $i<=10 ; $i++, $k--) { echo "Var " . $i . " is " . $k . "<br>"; } 

Две переменные $i и $k инициализируются соответственно 0 и 10 . В конце каждого цикла $i будет увеличиваться на один ( $i++ ) и $k уменьшенный на один ( $k-- ). Таким образом, $i будет иметь значения 0, 1, …, 10 и $k значения 10, 9, …, 0.

Вы не должны использовать два for-loops для того, чего бы вы хотели достичь, поскольку вы зацикливаете 121 раз всего (11×11). То, что вы действительно хотите, это просто иметь счетчик, объявленный вне цикла, который отслеживает j, а затем уменьшает j внутри цикла.

Редактировать: Спасибо Gumbo за то, что он поймал включение для меня.

Если, как выглядит ваш код, у вас есть два значения, которые работают в противоположном направлении, вы можете просто вычесть:

 echo "Var " . $i . " is " . 10 - $i . "<br>"; 

Но я думаю, это не то, чего вы хотите? Кроме того, будьте осторожны с предлагаемым оператором запятой . Хотя это хорошо, это может вызвать непослушные побочные эффекты на других языках, таких как C и C ++, поскольку PHP реализует его по-разному.

Вы также можете добавить условие для второй переменной

 for ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) { echo "Var " . $i . " is " . $k . "<br>"; } 

Чтобы расширить другие (правильные) ответы, то, что вы делаете, называется петлями вложенности . Это означает, что для каждой итерации внешнего цикла (первого) вы завершаете весь внутренний цикл. Это означает, что вместо 11 выходов вы получаете 11 + 11 + 11 + ... = 11 * 11 выходов

 array_map(function($i) { echo "Var {$i} is ".(10-$i)."<br/>".PHP_EOL; }, range(1,10)); 

Я попытался получить время начала и окончания и сохранить в базе данных, учитывая время начала и окончания, каждый цикл выполняется циклически, используя две переменные i & j

  $start = "09:00"; $end = "18:00"; $strEnTim = strtotime("10.00"); $slotStart = strtotime($start); $slotEnd = strtotime($end); $slotNow = $slotStart; for( $i=$slotStart, $j=$strEnTim; $i, $j<=$slotEnd; $i+=3600, $j+=3600) { if(( $i < $slotNow) && ( $j < $strEnTim)) continue; Slot::create([ 'start_time' => date("H:i",$i), 'end_time' => date("H:i", $j) ]); }