foreach และการควบคุมลูป
วนอ่านอาร์เรย์ด้วย foreach และใช้ break กับ continue
foreach และการควบคุมลูป เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
foreach: การวนผ่านอาร์เรย์
foreach เป็นวิธีมาตรฐานในการวนผ่านอาร์เรย์และออบเจ็กต์ใน PHP โดยไม่จำเป็นต้องติดตามดัชนีด้วยตนเอง
foreach กับอาร์เรย์แบบมีดัชนี
วนผ่านค่าต่าง ๆ ในอาร์เรย์แบบมีดัชนี:
<?php
$fruits = ['apple', 'banana', 'cherry'];
foreach ($fruits as $fruit) {
echo $fruit . PHP_EOL;
}
// apple
// banana
// cherryforeach กับคีย์ => ค่า
รับทั้งคีย์และค่าในการวนซ้ำแต่ละรอบ:
<?php
$person = ['name' => 'Alice', 'age' => 30, 'city' => 'London'];
foreach ($person as $key => $value) {
echo "$key: $value" . PHP_EOL;
}
// name: Alice
// age: 30
// city: Londonforeach ซ้อนกัน
วนผ่านอาร์เรย์ที่มีอาร์เรย์อยู่ภายใน เช่น ชุดผลลัพธ์จากฐานข้อมูล:
<?php
$users = [
['name' => 'Alice', 'role' => 'admin'],
['name' => 'Bob', 'role' => 'user'],
];
foreach ($users as $user) {
echo $user['name'] . ' is ' . $user['role'] . PHP_EOL;
}การแก้ไของค์ประกอบอาร์เรย์
หากต้องการแก้ไขค่าในอาร์เรย์ภายใน foreach ให้ใช้การอ้างอิง &$value:
<?php
$prices = [10, 20, 30];
foreach ($prices as &$price) {
$price *= 1.1; // 10% price increase
}
unset($price); // always unset after reference loop!
print_r($prices); // [11, 22, 33]break ใน foreach
ใช้ break เพื่อออกจากลูป foreach ก่อนเวลา:
<?php
$ids = [1, 2, 3, 4, 5];
$target = 3;
foreach ($ids as $id) {
if ($id === $target) {
echo 'Found: ' . $id;
break;
}
}continue ใน foreach
ใช้ continue เพื่อข้ามรายการที่ต้องการ:
<?php
$numbers = [1, 2, 3, 4, 5, 6];
foreach ($numbers as $n) {
if ($n % 2 === 0) continue; // skip evens
echo $n . ' '; // 1 3 5
}list() กับ foreach
แยกโครงสร้างอาร์เรย์ภายในแบบแทรกในบรรทัดเดียวด้วย list() หรือรูปแบบย่อ []:
<?php
$coords = [[10, 20], [30, 40], [50, 60]];
foreach ($coords as [$x, $y]) {
echo "x=$x, y=$y" . PHP_EOL;
}
// x=10, y=20
// x=30, y=40การวนผ่านออบเจ็กต์
foreach ใช้กับออบเจ็กต์ได้ โดยค่าเริ่มต้นจะวนผ่านพร็อพเพอร์ตีสาธารณะ:
<?php
class Config {
public string $host = 'localhost';
public int $port = 3306;
public string $db = 'myapp';
}
foreach (new Config() as $key => $val) {
echo "$key = $val" . PHP_EOL;
}ตัวสร้างข้อมูลเป็นเป้าหมายของ foreach
ตัวสร้างข้อมูลของ PHP ช่วยให้คุณวนผ่านชุดข้อมูลขนาดใหญ่ได้โดยไม่ต้องโหลดทุกอย่างไว้ในหน่วยความจำ:
<?php
function range100(): Generator {
for ($i = 1; $i <= 100; $i++) {
yield $i;
}
}
foreach (range100() as $num) {
if ($num > 5) break;
echo $num . ' '; // 1 2 3 4 5
}array_walk เทียบกับ foreach
array_walk ใช้ฟังก์ชันเรียกกลับกับทุกองค์ประกอบโดยตรงในอาร์เรย์ ซึ่งเป็นทางเลือกแทน foreach สำหรับการแปลงแบบง่าย ๆ:
<?php
$names = ['alice', 'bob', 'carol'];
array_walk($names, function (&$name) {
$name = ucfirst($name);
});
print_r($names); // ['Alice', 'Bob', 'Carol']ตรวจสอบความเข้าใจ
เมื่อวนผ่านอาร์เรย์โดยใช้การอ้างอิงใน foreach ควรทำอะไรหลังจบลูป
สรุป: foreach และการควบคุมการวนซ้ำ
ประเด็นสำคัญ:
foreach ($arr as $val)สำหรับวนผ่านค่าforeach ($arr as $key => $val)สำหรับคู่คีย์-ค่า- ใช้การอ้างอิง
&$valเพื่อแก้ไขค่าโดยตรง และยกเลิกการอ้างอิงเสมอหลังใช้งาน breakและcontinueใช้ภายใน foreach ได้- แยกโครงสร้างอาร์เรย์ภายในด้วย
[$a, $b] - ตัวสร้างข้อมูลช่วยให้ foreach ประมวลผลชุดข้อมูลขนาดใหญ่โดยใช้หน่วยความจำอย่างมีประสิทธิภาพ
คำถามที่พบบ่อย
บทเรียน “foreach และการควบคุมลูป” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “foreach และการควบคุมลูป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “foreach และการควบคุมลูป”
วนอ่านอาร์เรย์ด้วย foreach และใช้ break กับ continue คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “foreach และการควบคุมลูป” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- if, elseif และ else
- คำสั่ง Switch และ Match
- ลูป for และ while
- foreach และการควบคุมลูป