ความหมายและการใช้งาน
ใน 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