array_intersect_key()
ใน php มีฟังก์ที่เกี่ยวข้องกับ Array หลายๆฟังก์ชัน เพื่อเพิ่มความสะดวกให้กับผู้เขียนโปรแกรโดยที่ไม่จำเป็นต้องสร้างฟังก์ชันเอง ซึ่งก่อนหน้านี้เราพูดถึงฟังก์ชัน ฟังก์ชัน array_intersect() ซึ่งเป็นฟังก์ชันสำหรับหา element ที่มีค่าเหมือนกัน ส่วนบทความนี้เราจะพูดถึง ฟังก์ชัน array_intersect_key()
ฟังก์ชัน array_intersect_key() เป็นฟังก์ชัน ที่ช่วยในการสร้าง array ใหม่จากการเอา value ของ array เดิมมาทำเป็น index และเติมค่าของ array ใหม่ด้วยค่าที่ต้องการ
รูปแบบ syntex
array_intersect_key ( array $array1 , array $array2 [, array $... ] ) : array
array1
: อาร์เรย์ที่มีคีย์หลักเพื่อตรวจสอบ
array2
: อาร์เรย์เพื่อเปรียบเทียบคีย์
..... : อาร์เรย์อื่นๆซึ่งพื่อเปรียบเทียบคีย์เช่นเดียวกัน
ตัวอย่างการใช้งาน
<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_intersect_key($array1, $array2));
?>
ผลลัพธ์ที่ได้
array(2) {
["blue"]=>
int(1)
["green"]=>
int(3)
}
ในตัวอย่างของเราจะเห็นว่ามีเพียงคีย์ 'blue' และ'green' เท่านั้นที่มีอยู่ในทั้งสองอาร์เรย์ ดังนั้นสังเกตว่าค่าสำหรับคีย์ 'blue'และ'green' นั้นมีความแตกต่างกันระหว่างสองอาร์เรย์ ความเหมือนกัน(match )ยังคงเกิดขึ้นเนื่องจากฟังก์ชันนี้จะตรวจสอบคีย์เท่านั้น โดยคำนึงถึง array1 เป็นหลัก ซึ่งถือว่าไม่ใช่เรื่องที่ซับซ้อนมาก เราสามารถนำไประยุกต์เพิ่มเติมได้เพื่อให้เข้ากับโปรเจ็คของเรา