ฟังก์ชัน array_uintersect_uassoc() ใช้เปรียบเทียบ ทั้งคีย์และค่า ของอาร์เรย์ด้วยฟังก์ชันที่ผู้ใช้กำหนดเอง (user-defined functions) และส่งคืนอาร์เรย์ที่มีค่าที่ตรงกันทั้งคีย์และค่า
ไวยากรณ์ (Syntax)
array_uintersect_uassoc(arr1, arr2, arr3, ..., compare_func1, compare_func2)
พารามิเตอร์ (Parameters)
arr1 − อาร์เรย์แรกที่ต้องการเปรียบเทียบ
arr2 − อาร์เรย์ที่สองที่ต้องการเปรียบเทียบ
arr3, ... − อาร์เรย์เพิ่มเติม (ตัวเลือก)
compare_func1 − ฟังก์ชันเปรียบเทียบสำหรับ คีย์ (keys)
compare_func2 − ฟังก์ชันเปรียบเทียบสำหรับ ค่า (values)
ค่าที่ส่งคืน (Return Value)
ส่งคืนอาร์เรย์ที่มีค่าจากอาร์เรย์แรกที่มีทั้งคีย์และค่าตรงกันในทุกอาร์เรย์ที่เปรียบเทียบ
ตัวอย่างการใช้งาน
<?php
function compare_func_key($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
function compare_func_val($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$arr1 = array("a" => "laptop", "b" => "keyboard", "c" => "mouse");
$arr2 = array("a" => "laptop", "b" => "keyboard", "c" => "headphone");
$res = array_uintersect_uassoc($arr1, $arr2, "compare_func_key", "compare_func_val");
print_r($res);
?>
ผลลัพธ์
Array ( [a] => laptop [b] => keyboard )