문제

이것을 할 수 있습니까? (여기 내 코드가 있습니다)

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에게 감사합니다.

코드가 보이면 단순히 잠복 할 수있는 반대 방향을 실행하는 두 가지 값이 있습니다.

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

그러나 나는 그것이 당신이 실제로 원하는 것이 아니라고 생각합니까? 또한 제안 된 것에주의하십시오 쉼표 운영자. 좋은 일이지만 다른 언어에서 장난 꾸러기 부작용을 일으킬 수 있습니다. C 및 C ++ PHP가 다르게 구현됩니다.

다른 (올바른) 답변을 확장하려면 당신이하고있는 일이 둥지 루프. 이것은 외부 루프 (첫 번째 루프)의 모든 반복에 대해 전체 내부 루프를 완료하고 있음을 의미합니다. 이것은 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)
        ]);
   }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top