Arrays เบื้องต้น: การสร้างและการเข้าถึงข้อมูล
ในบทเรียนที่แล้ว เราได้เรียนรู้เกี่ยวกับ Loops ซึ่งช่วยให้เราสามารถทำซ้ำการทำงานของโค้ดได้ ในบทนี้ เราจะมาเรียนรู้เกี่ยวกับ Arrays ซึ่งเป็นโครงสร้างข้อมูลที่สำคัญมากในการจัดเก็บและจัดการข้อมูลหลายๆ ค่าไว้ด้วยกัน
Arrays คืออะไร?
Arrays คือตัวแปรชนิดพิเศษที่สามารถเก็บข้อมูลได้มากกว่าหนึ่งค่าในตัวแปรเดียว ลองนึกภาพว่าคุณมีกล่องที่สามารถใส่ของได้หลายชิ้น แต่ละชิ้นมีหมายเลขกำกับ (Index) หรือชื่อเรียก (Key) ของตัวเอง Arrays ก็เหมือนกล่องนั้นแหละครับ
การสร้าง Array
ใน PHP เราสามารถสร้าง Array ได้หลายวิธี วิธีที่ง่ายที่สุดคือการใช้ฟังก์ชัน array() หรือใช้ Short Array Syntax []
การใช้ฟังก์ชัน array()
<?php
// สร้าง array ว่าง
$my_array = array();
// สร้าง array ที่มีข้อมูล
$fruits = array("apple", "banana", "orange");
print_r($fruits); // แสดงผล array
?>
เมื่อรันโค้ดนี้ คุณจะได้ผลลัพธ์:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
จะเห็นว่า array $fruits มีข้อมูล 3 ค่า คือ "apple", "banana", และ "orange" แต่ละค่ามี index กำกับอยู่ เริ่มต้นจาก 0
การใช้ Short Array Syntax []
PHP 5.4 เป็นต้นมา ได้เพิ่ม Short Array Syntax ซึ่งทำให้การสร้าง array สั้นและอ่านง่ายขึ้น
<?php
// สร้าง array ว่าง
$my_array = [];
// สร้าง array ที่มีข้อมูล
$fruits = ["apple", "banana", "orange"];
print_r($fruits); // แสดงผล array
?>
โค้ดนี้ให้ผลลัพธ์เหมือนกับโค้ดก่อนหน้า แต่เขียนได้กระชับกว่า
การเข้าถึงข้อมูลใน Array
เมื่อเราสร้าง array แล้ว เราจะเข้าถึงข้อมูลที่อยู่ใน array ได้อย่างไร? เราสามารถทำได้โดยใช้ index หรือ key ของข้อมูลนั้นๆ
การเข้าถึงข้อมูลด้วย Index (Indexed Array)
Indexed Array คือ array ที่มี index เป็นตัวเลข เริ่มต้นจาก 0
<?php
$fruits = ["apple", "banana", "orange"];
// เข้าถึงข้อมูลที่ index 0 (apple)
echo $fruits[0]; // แสดงผล: apple
// เข้าถึงข้อมูลที่ index 1 (banana)
echo $fruits[1]; // แสดงผล: banana
// เข้าถึงข้อมูลที่ index 2 (orange)
echo $fruits[2]; // แสดงผล: orange
?>
ข้อควรระวัง: หากคุณพยายามเข้าถึง index ที่ไม่มีอยู่จริงใน array จะเกิด error ขึ้น
<?php
$fruits = ["apple", "banana", "orange"];
// พยายามเข้าถึง index 3 (ไม่มีอยู่จริง)
echo $fruits[3]; // Warning: Undefined array key 3
?>
การเข้าถึงข้อมูลด้วย Key (Associative Array)
Associative Array คือ array ที่มี key เป็น string หรือ integer ที่เรากำหนดเอง
<?php
$person = [
"name" => "John Doe",
"age" => 30,
"city" => "New York"
];
// เข้าถึงข้อมูลด้วย key "name"
echo $person["name"]; // แสดงผล: John Doe
// เข้าถึงข้อมูลด้วย key "age"
echo $person["age"]; // แสดงผล: 30
// เข้าถึงข้อมูลด้วย key "city"
echo $person["city"]; // แสดงผล: New York
?>
ในตัวอย่างนี้ เราสร้าง array $person ที่มี key เป็น string ("name", "age", "city") และ value เป็นข้อมูลที่เกี่ยวข้อง
Arrays แบบ Indexed และ Associative: ความแตกต่าง
ความแตกต่างหลักๆ ระหว่าง Indexed Array และ Associative Array คือ:
- Indexed Array: ใช้ index เป็นตัวเลข (เริ่มจาก 0) ในการเข้าถึงข้อมูล เหมาะสำหรับเก็บข้อมูลที่เป็นลำดับ และไม่ต้องการกำหนดชื่อให้แต่ละข้อมูล
- Associative Array: ใช้ key เป็น string หรือ integer ที่เรากำหนดเองในการเข้าถึงข้อมูล เหมาะสำหรับเก็บข้อมูลที่มีความหมาย และต้องการเข้าถึงข้อมูลด้วยชื่อที่สื่อความหมาย
นอกจากนี้ PHP ยังมี array อีกประเภทหนึ่งเรียกว่า Multidimensional Array ซึ่งเป็น array ที่มี array อื่นซ้อนอยู่ข้างใน เราจะพูดถึงเรื่องนี้ในบทเรียนถัดๆ ไป
ตัวอย่างการใช้งาน Arrays
ลองดูตัวอย่างการใช้งาน arrays ในสถานการณ์ต่างๆ:
เก็บรายชื่อนักเรียน
<?php
$students = ["Alice", "Bob", "Charlie"];
// แสดงรายชื่อนักเรียนทั้งหมด
for ($i = 0; $i < count($students); $i++) {
echo "Student " . ($i + 1) . ": " . $students[$i] . "<br>";
}
?>
เก็บข้อมูลสินค้า
<?php
$products = [
[
"name" => "Laptop",
"price" => 1200,
"quantity" => 10
],
[
"name" => "Mouse",
"price" => 25,
"quantity" => 50
],
[
"name" => "Keyboard",
"price" => 75,
"quantity" => 30
]
];
// แสดงชื่อและราคาสินค้าทั้งหมด
foreach ($products as $product) {
echo "Product: " . $product["name"] . ", Price: $" . $product["price"] . "<br>";
}
?>
สรุป
ในบทเรียนนี้ เราได้เรียนรู้เกี่ยวกับ Arrays ซึ่งเป็นโครงสร้างข้อมูลที่สำคัญใน PHP เราได้เรียนรู้วิธีการสร้าง Arrays ทั้งแบบ Indexed และ Associative รวมถึงวิธีการเข้าถึงข้อมูลใน Arrays ด้วย Index และ Key Arrays เป็นเครื่องมือที่มีประโยชน์มากในการจัดเก็บและจัดการข้อมูลในโปรแกรมของคุณ ในบทเรียนต่อไป เราจะมาเรียนรู้เกี่ยวกับ Functions ซึ่งเป็นอีกหนึ่งเครื่องมือที่สำคัญในการเขียนโปรแกรม