นิยามและการใช้งาน
ใน PHP Array (อาร์เรย์) คือชุดข้อมูลที่คั่นด้วยเครื่องหมายจุลภาคของคู่ key => value อาร์เรย์แบบนี้เรียกว่า Associative Array (อาร์เรย์อาสอซิเอทีฟ) โดยค่า (value) จะเชื่อมโยงกับคีย์ (key) ที่ไม่ซ้ำกัน ส่วนคีย์ต้องเป็นสตริงหรือจำนวนเต็ม ส่วนค่าสามารถเป็นชนิดใดๆ ก็ได้ แม้แต่อาร์เรย์อีกทีหนึ่ง
การใช้คีย์เป็นทางเลือก ถ้าอาร์เรย์ประกอบด้วยแค่ค่า จะกลายเป็นอาร์เรย์ดัชนี (indexed array) โดยดัชนีตำแหน่งเริ่มจาก 0 ของค่า จะทำหน้าที่เป็นคีย์
อ็อบเจ็กต์อาร์เรย์สามารถสร้างได้โดยฟังก์ชัน array() และการกำหนดค่าด้วยการวางองค์ประกอบในวงเล็บเหลี่ยม []
รูปแบบไวยากรณ์
//อาสอซิเอทีฟอาร์เรย์ใช้ฟังก์ชัน array() $arr=array(key1=>val1, key2=>val2,key3=val3,..); //อาสอซิเอทีฟอาร์เรย์ใช้วิธีการกำหนดค่า $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) }
ตัวอย่างนี้ใช้วงเล็บเหลี่ยมสำหรับการกำหนดอาร์เรย์อาสอซิเอทีฟ:
ตัวอย่าง
<?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"]; //ใช้ 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"]; //แก้ไของค์ประกอบอาร์เรย์ $arr[2]="twenty"; //เพิ่มองค์ประกอบใหม่ในอาร์เรย์ $arr[10]="ten"; //ใช้ foreach loop foreach ($arr as $key=>$value){ echo $key . "=>" . $value . "\n"; } ?>
ผลลัพธ์
1=>one 2=>twenty 3=>three 10=>ten