ความหมายและการใช้งาน
ใน PHP อาร์เรย์ เป็นคอลเล็กชันที่คั่นด้วยเครื่องหมายจุลภาคของ key => value คู่ อาร์เรย์ดังกล่าวเรียกว่า Associative Array โดยที่ค่าเชื่อมโยงกับคีย์เฉพาะ ส่วนสำคัญต้องเป็น ba สตริงหรือจำนวนเต็ม ในขณะที่ค่าสามารถเป็นประเภทใดก็ได้ แม้แต่อาร์เรย์อื่น
การใช้คีย์เป็นทางเลือก หากอาร์เรย์ประกอบด้วยค่าเท่านั้น อาร์เรย์นั้นจะกลายเป็นอาร์เรย์ที่จัดทำดัชนี โดยดัชนีตำแหน่งตามค่าศูนย์ของค่าจะทำงานเป็นคีย์
Array object สามารถเริ่มต้นได้โดย array() ฟังก์ชันและการกำหนดโดยใส่องค์ประกอบในวงเล็บเหลี่ยม []
ไวยากรณ์
//Associative array using array() function $arr=array(key1=>val1, key2=>val2,key3=val3,..); //Associative array using assignment method $arr=[key1=>val1, key2=>val2,key3=val3,..];
คีย์ควรเป็นจำนวนเต็มหรือสตริง องค์ประกอบค่าสามารถเป็นประเภท PHP ใดก็ได้ หากคีย์บางคีย์ปรากฏขึ้นซ้ำๆ กัน ค่าสุดท้ายที่กำหนดจะเขียนทับค่าก่อนหน้า เราสามารถเข้าถึงค่าที่เกี่ยวข้องกับคีย์บางตัวโดยทำตามไวยากรณ์ -
$arr[key1];
เวอร์ชัน PHP
ใช้วงเล็บเหลี่ยมสำหรับกำหนดอาร์เรย์ได้ตั้งแต่ PHP 5.4
ตัวอย่างต่อไปนี้ใช้ฟังก์ชัน array() เพื่อประกาศอาร์เรย์ที่เชื่อมโยง
ตัวอย่าง
<?php $arr=array(1=>"one", 2=>"two", 3=>"three"); var_dump($arr); ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
array(3) {
[1]=>
int(11)
[2]=>
int(22)
[3]=>
int(33)
} ตัวอย่างนี้ใช้วงเล็บเหลี่ยมสำหรับกำหนด associative array
ตัวอย่าง
<?php $arr=[1=>"one", 2=>"two", 3=>"three"]; var_dump($arr); ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
array(3) {
[1]=>
string(3) "one"
[2]=>
string(3) "two"
[3]=>
string(5) "three"
} เราสามารถสำรวจองค์ประกอบอาร์เรย์โดยใช้ foreach loop ได้ดังนี้:
ตัวอย่าง
<?php
$arr=[1=>"one", 2=>"two", 3=>"three"];
//using foreach loop
foreach ($arr as $key=>$value){
echo $key . "=>" . $value . "\n";
}
?> ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
1=>one 2=>two 3=>three
ตัวอย่างนี้แสดงค่าแก้ไขขององค์ประกอบที่มีอยู่และเพิ่มคู่คีย์-ค่าใหม่โดยใช้วงเล็บเหลี่ยม
ตัวอย่าง
<?php
$arr=[1=>"one", 2=>"two", 3=>"three"];
//modify array element
$arr[2]="twenty";
//add new element in array
$arr[10]="ten";
//using foreach loop
foreach ($arr as $key=>$value){
echo $key . "=>" . $value . "\n";
}
?> ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
1=>one 2=>twenty 3=>three 10=>ten