วิธีเพิ่มตัวเลข 2 ใน PHP For Loop [ซ้ำกัน]

ต่อไปนี้เป็นโค้ดของฉันเวอร์ชันที่เรียบง่าย:

<?php for($n=1; $n<=8; $n++): ?>
    <p><?php echo $n; ?></p>
    <p><?php echo $n; ?></p>
<?php endfor; ?>

ฉันต้องการให้ลูปทำงาน 8 ครั้ง และฉันต้องการให้ตัวเลขในย่อหน้าแรกเพิ่มขึ้น 1 ในแต่ละลูป เช่น

1, 2, 3, 4, 5, 6, 7, 8 (นี่เป็นเรื่องง่ายอย่างเห็นได้ชัด)

อย่างไรก็ตาม ฉันต้องการให้ตัวเลขในย่อหน้าที่สองเพิ่มขึ้น 2 ในแต่ละวง เช่น...

1, 3, 5, 7, 9, 11, 13, 15

ฉันไม่สามารถหาวิธีทำให้ตัวเลขในย่อหน้าที่สองเพิ่มขึ้น 2 ในแต่ละวงได้ ถ้าฉันเปลี่ยนเป็น $n++ มันจะเพิ่มขึ้นทีละ 2 แต่จะทำให้ลูปทำงานเพียง 4 ครั้งแทนที่จะเป็น 8

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก ขอบคุณ!


person user2586455    schedule 07.11.2013    source แหล่งที่มา
comment
...ค่อนข้างรุนแรง นี่เป็นครั้งแรกที่ฉันทำงานกับ for loops   -  person user2586455    schedule 07.11.2013
comment
@Alma Do: ทำไมต้องเยาะเย้ย OP อาจจะเป็นคนใหม่? ไม่ใช่ทุกคนที่มีประสบการณ์ด้านโค้ดเหมือนคุณ สิ่งที่น่าเศร้าคือความคิดเห็นของคุณและผู้ที่สนับสนุนมัน   -  person Display name    schedule 25.11.2014


คำตอบ (6)


<?php
  for ($n = 0; $n <= 7; $n++) {
    echo '<p>'.($n + 1).'</p>';
    echo '<p>'.($n * 2 + 1).'</p>';
  }
?>

ย่อหน้าแรก:

1, 2, 3, 4, 5, 6, 7, 8

ย่อหน้าที่สอง:

1, 3, 5, 7, 9, 11, 13, 15
person Legionar    schedule 07.11.2013
comment
ขอบคุณ ตรงกับที่ฉันต้องการเลย เห็นได้ชัดว่านี่ง่ายมากตามที่แนะนำโดย downvotes/ความคิดเห็นในคำถามเดิม แต่คำตอบอื่น ๆ สองสามข้อที่เสนอนั้นผิดธรรมดาหรือซับซ้อนโดยไม่จำเป็น ไม่ชัดเจนในทันทีสำหรับผู้เริ่มต้น - person user2586455; 07.11.2013

คุณควรทำเช่นนี้:

 for ($i=1; $i <=10; $i+=2) 
{ 
    echo $i.'<br>';
}

"+=" คุณสามารถเพิ่มตัวแปรได้มากหรือน้อยตามที่คุณต้องการ "$i+=5" หรือ "$i+=.5"

person AntonioAvp    schedule 15.06.2016
comment
ใช่ นี่ตอบคำถามไม่ถูกต้อง โดยจะชี้ให้เห็นเฉพาะคุณลักษณะของภาษาที่เหมาะกับความคิดเห็นมากกว่าหากนั่นคือจุดประสงค์ - person tiomno; 07.12.2017
comment
ฉันเห็นด้วยกับคำวิจารณ์ของคำถามที่ไม่สมบูรณ์ แต่นั่นทำให้เกิดคำถามสำหรับฉัน คำตอบนี้ตอบคำถามในชื่อซึ่งเป็นสิ่งที่ฉันค้นหา นี่อาจไม่ใช่คำตอบที่สมบูรณ์ที่สุด แต่เป็นคำตอบที่ได้รับความนิยมมากที่สุด มันยังไม่เหมาะสมแม้ว่าจะมีประโยชน์หรือไม่? - person Pixelsmith; 04.09.2020

คุณควรใช้ตัวแปรอื่น:

 $m=0; 
 for($n=1; $n<=8; $n++): 
  $n = $n + $m;
  $m++;
  echo '<p>'. $n .'</p>';
 endfor;
person Manolo    schedule 07.11.2013
comment
ดีจริงๆ ฉันทนแท็ก php ที่ไม่จำเป็นไม่ได้ - person Loko; 07.11.2013

วิธีแก้ปัญหาง่ายๆ

<?php
   $x = 1;
     for($x = 1; $x < 8; $x++) {
        $x = $x + 1;
       echo $x;
     };    
?>
person Oladimeji Ajeniya    schedule 21.12.2016
comment
ครั้งแรก $x = 1; ไม่มีประโยชน์ที่นั่น - person Yousha Aleayoub; 08.12.2017

วิธีแก้ปัญหาง่ายๆ อีกประการหนึ่งด้วย +=:

$y = 1;

for ($x = $y; $x <= 15; $y++) {
  printf("The number of first paragraph is: $y <br>");
  printf("The number of second paragraph is: $x+=2 <br>");
} 
person Manuel    schedule 19.11.2017

person    schedule
comment
นี่เป็นสิ่งที่ผิดในหลายระดับ... อย่างแรก มันจะส่งออก: 369, $x ถูกประกาศสองครั้งโดยไม่จำเป็น, อัฒภาคหลังวงเล็บปีกกาไม่ได้ทำอะไรเลย };, ปิดแท็ก php เราก็ไร้ประโยชน์เช่นกัน ?> - person gondo; 24.05.2016