본문으로 건너뛰기

เนื้อหาภาษาไทย / 태국어 콘텐츠

시스템 가이드 검수 완료된 콘텐츠

Arrays: การวนซ้ำ array ด้วย foreach loop

บทความนี้อธิบายการใช้งาน `foreach` loop ใน PHP ซึ่งเป็นเครื่องมือสำคัญสำหรับการวนซ้ำ array เพื่อเข้าถึงข้อมูลแต่ละรายการได้อย่างง่ายดายและมีประสิทธิภาพ โดยสามาร...

Arrays: การวนซ้ำ array ด้วย foreach loop

ในบทความที่แล้ว เราได้เรียนรู้เกี่ยวกับ Array ใน PHP ซึ่งเป็นโครงสร้างข้อมูลที่สำคัญสำหรับการจัดเก็บข้อมูลหลายรายการ ในบทนี้ เราจะมาเรียนรู้วิธีการวนซ้ำ (iterate) array เพื่อเข้าถึงข้อมูลแต่ละรายการที่อยู่ใน array ได้อย่างง่ายดายและมีประสิทธิภาพ โดยใช้ foreach loop

Foreach Loop คืออะไร?

foreach loop เป็นโครงสร้างควบคุมที่ออกแบบมาโดยเฉพาะสำหรับการวนซ้ำ array ใน PHP มันช่วยให้เราสามารถเข้าถึงแต่ละ element ใน array ได้โดยไม่ต้องกังวลเรื่อง index หรือ key ด้วยโครงสร้างที่เรียบง่ายและใช้งานง่าย foreach loop จึงเป็นเครื่องมือที่ขาดไม่ได้สำหรับการทำงานกับ array

โครงสร้างของ Foreach Loop

โครงสร้างพื้นฐานของ foreach loop มีดังนี้:

foreach (array as $value) {
  // โค้ดที่จะทำงานกับ $value
}

หรือ

foreach (array as $key => $value) {
  // โค้ดที่จะทำงานกับ $key และ $value
}

อธิบาย:

  • array: คือ array ที่เราต้องการวนซ้ำ
  • $value: คือตัวแปรที่จะเก็บค่าของแต่ละ element ใน array ในแต่ละรอบของการวนซ้ำ
  • $key: คือตัวแปรที่จะเก็บ key ของแต่ละ element ใน array ในแต่ละรอบของการวนซ้ำ (ใช้เฉพาะในกรณีที่ต้องการเข้าถึง key)

การใช้งาน Foreach Loop กับ Indexed Array

Indexed array คือ array ที่ index เป็นตัวเลขเรียงตามลำดับ ลองมาดูตัวอย่างการใช้ foreach loop กับ indexed array:

<?php
$colors = ["Red", "Green", "Blue"];

foreach ($colors as $color) {
  echo "Color: " . $color . "<br>";
}
?>

ผลลัพธ์:

Color: Red<br>
Color: Green<br>
Color: Blue<br>

ในตัวอย่างนี้ foreach loop จะวนซ้ำ array $colors และในแต่ละรอบ ตัวแปร $color จะเก็บค่าของ element ใน array นั้นๆ เราสามารถนำค่า $color ไปใช้งานได้ตามต้องการ

การใช้งาน Foreach Loop กับ Associative Array

Associative array คือ array ที่ index เป็น string หรือ key ลองมาดูตัวอย่างการใช้ foreach loop กับ associative array:

<?php
$person = [
  "name" => "John Doe",
  "age" => 30,
  "city" => "New York"
];

foreach ($person as $key => $value) {
  echo $key . ": " . $value . "<br>";
}
?>

ผลลัพธ์:

name: John Doe<br>
age: 30<br>
city: New York<br>

ในตัวอย่างนี้ foreach loop จะวนซ้ำ array $person และในแต่ละรอบ ตัวแปร $key จะเก็บ key ของ element นั้นๆ และตัวแปร $value จะเก็บค่าของ element นั้นๆ เราสามารถนำค่า $key และ $value ไปใช้งานได้ตามต้องการ

การเข้าถึง Key และ Value พร้อมกัน

ดังที่เราได้เห็นในตัวอย่าง associative array เราสามารถเข้าถึงทั้ง key และ value ได้พร้อมกันโดยใช้ syntax foreach ($array as $key => $value) ซึ่งมีประโยชน์อย่างมากเมื่อเราต้องการแสดงผลข้อมูลที่มีความสัมพันธ์กันระหว่าง key และ value

<?php
$products = [
  "apple" => 1.00,
  "banana" => 0.50,
  "orange" => 0.75
];

echo "<ul>";
foreach ($products as $product => $price) {
  echo "<li>" . $product . ": $" . $price . "</li>";
}
echo "</ul>";
?>

ผลลัพธ์:

<ul>
  <li>apple: $1.00</li>
  <li>banana: $0.50</li>
  <li>orange: $0.75</li>
</ul>

การใช้งาน Foreach Loop กับ Nested Array

Nested array คือ array ที่มี array อื่นๆ เป็น element ภายใน หากเราต้องการวนซ้ำ nested array เราจะต้องใช้ foreach loop ซ้อนกัน

<?php
$students = [
  "group1" => ["Alice", "Bob", "Charlie"],
  "group2" => ["David", "Eve", "Frank"]
];

foreach ($students as $group => $members) {
  echo "Group: " . $group . "<br>";
  echo "<ul>";
  foreach ($members as $member) {
    echo "<li>" . $member . "</li>";
  }
  echo "</ul>";
}
?>

ผลลัพธ์:

Group: group1<br>
<ul>
  <li>Alice</li>
  <li>Bob</li>
  <li>Charlie</li>
</ul>
Group: group2<br>
<ul>
  <li>David</li>
  <li>Eve</li>
  <li>Frank</li>
</ul>

ในตัวอย่างนี้ เราใช้ foreach loop ตัวนอกเพื่อวนซ้ำแต่ละ group และใช้ foreach loop ตัวในเพื่อวนซ้ำสมาชิกแต่ละคนใน group นั้นๆ

ข้อควรระวังในการใช้งาน Foreach Loop

  • การแก้ไข Array ภายใน Foreach Loop: การแก้ไข array ที่กำลังวนซ้ำอยู่ภายใน foreach loop อาจทำให้เกิดผลลัพธ์ที่ไม่คาดฝันได้ ควรหลีกเลี่ยงการแก้ไข array โดยตรง หากจำเป็นต้องแก้ไข ควรสร้างสำเนาของ array ก่อนแล้วค่อยวนซ้ำสำเนาแทน
  • Performance: foreach loop โดยทั่วไปมีประสิทธิภาพดี แต่หาก array มีขนาดใหญ่มาก การวนซ้ำอาจใช้เวลาพอสมควร ควรพิจารณาใช้วิธีการอื่นหาก performance เป็นสิ่งสำคัญ

สรุป

foreach loop เป็นเครื่องมือที่ทรงพลังและใช้งานง่ายสำหรับการวนซ้ำ array ใน PHP ไม่ว่าจะเป็น indexed array หรือ associative array การเข้าใจวิธีการใช้งาน foreach loop จะช่วยให้คุณสามารถจัดการและประมวลผลข้อมูลใน array ได้อย่างมีประสิทธิภาพมากยิ่งขึ้น ในบทความต่อไป เราจะมาเรียนรู้เกี่ยวกับการสร้างและใช้งานฟังก์ชัน (functions) ใน PHP ซึ่งเป็นอีกหนึ่งพื้นฐานสำคัญในการเขียนโปรแกรม

Office.in.th Custom Service

이 구조를 바탕으로 시스템을 개발하거나 맞춤 변경하고 싶으신가요?

Office.in.th는 엔터프라이즈 웹 애플리케이션, API 연동, 공공/민간 업무 관리 시스템을 설계·개발하며 장기 지원을 제공합니다.

소프트웨어 개발 서비스 보기