2 개의 변수가있는 루프 용 PHP?
-
19-09-2019 - |
문제
이것을 할 수 있습니까? (여기 내 코드가 있습니다)
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 전문가, 도와주세요 !!
해결책
이 시도:
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 ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
총 121 배 (11x11)를 반복 할 때 달성하고자하는 것에 대해 두 개의 for 루프를 사용해서는 안됩니다. 당신이 정말로 원하는 것은 단지 j를 추적하는 루프 외부에 카운터를 선언 한 다음 루프 내부에서 j를 줄이는 것입니다.
편집 : 나에게 포함시킨 Gumbo에게 감사합니다.
다른 (올바른) 답변을 확장하려면 당신이하고있는 일이 둥지 루프. 이것은 외부 루프 (첫 번째 루프)의 모든 반복에 대해 전체 내부 루프를 완료하고 있음을 의미합니다. 이것은 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)
]);
}
제휴하지 않습니다 StackOverflow