⊗ppSpOtEI 76 of 83 menu

การลดการวนซ้ำที่เกินจำเป็นใน PHP

ในโค้ดต่อไปนี้ โปรแกรมเมอร์คนหนึ่งกำลังตรวจสอบว่า ในอาเรย์มีตัวเลข 3 หรือไม่:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $exists = false; foreach ($arr as $elem) { if ($elem == 3) { $exists = true; } } var_dump($exists); ?>

มีอะไรผิดปกติกับวิธีแก้ปัญหาของเขาหรือ? ดูเหมือนว่า จะไม่มีการดำเนินการที่เกินจำเป็นในลูป ปัญหา อย่างไรก็ตาม คือหลังจากที่ตรวจสอบได้แล้วว่า ตัวเลข 3 มีอยู่ในอาเรย์ - ลูป ก็ยังคงทำงานต่อไปจนกว่าจะถึงจุดสิ้นสุดของอาเรย์

สิ่งที่ไม่มีประสิทธิภาพที่สุดคือ ถ้าตัวเลข 3 ถูกพบที่ไหนสักแห่งในตอนต้นของอาเรย์ ในขณะที่อาเรย์เอง มีความยาว สมมติ 1000 องค์ประกอบ ผลลัพธ์คือการวนซ้ำที่ไร้ประโยชน์เกินจำเป็นถึงหนึ่งพันครั้ง! ไม่เหมาะสม

มาเพิ่มประสิทธิภาพโค้ดโดยหยุดลูปในเวลาที่เหมาะสม:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $exists = false; foreach ($arr as $elem) { if ($elem == 3) { $exists = true; break; } } var_dump($exists); ?>

โค้ดต่อไปนี้นับจำนวนองค์ประกอบของอาเรย์ที่ต้องบวก เพื่อให้ผลรวมมากกว่า 10 ทำการเพิ่มประสิทธิภาพ:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $sum = 0; $i = 1; foreach ($arr as $elem) { $sum += $elem; if ($sum <= 10) { $i++; } } echo $i; ?>

โค้ดต่อไปนี้แสดงเลขคู่ จากขอบเขตที่กำหนด ทำการเพิ่มประสิทธิภาพ:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0) { echo $i; } } ?>

โค้ดต่อไปนี้แสดงตัวเลข ที่หารด้วย 2 และ 3 ลงตัวพร้อมกัน ทำการเพิ่มประสิทธิภาพ:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ