Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

อาร์เรย์อาสอซิเอทีฟ (Associative Array) ใน PHP

นิยามและการใช้งาน

ใน 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