0Pricing
PHP Academy · บทเรียน

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
// cherry

foreach กับคีย์ => ค่า

รับทั้งคีย์และค่าในการวนซ้ำแต่ละรอบ:

<?php
$person = ['name' => 'Alice', 'age' => 30, 'city' => 'London'];

foreach ($person as $key => $value) {
    echo "$key: $value" . PHP_EOL;
}
// name: Alice
// age: 30
// city: London

foreach ซ้อนกัน

วนผ่านอาร์เรย์ที่มีอาร์เรย์อยู่ภายใน เช่น ชุดผลลัพธ์จากฐานข้อมูล:

<?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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. if, elseif และ else
  2. คำสั่ง Switch และ Match
  3. ลูป for และ while
  4. foreach และการควบคุมลูป
← กลับไปที่ PHP Academy