メインコンテンツへ移動

เนื้อหาภาษาไทย / タイ語のコンテンツ

システムガイド 内容確認済み

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 は、エンタープライズ Web アプリケーション、API 連携、官民の業務管理システムの設計・開発を承り、長期的なサポートも提供します。

ソフトウェア開発サービスを見る