คำอธิบาย
ฟังก์ชัน array_udiff_uassoc() คำนวณ difference (ความต่าง) ของอาร์เรย์โดยเปรียบเทียบคีย์และค่าทั้งคู่ด้วยฟังก์ชัน callback แยกกัน
รูปแบบการใช้งาน (Syntax)
array_udiff_uassoc(arr1, arr2, ..., key_compare_func, value_compare_func)
พารามิเตอร์
- arr1 — อาร์เรย์แรก (ฐานเปรียบเทียบ)
- arr2 — อาร์เรย์ที่สอง
- ... — อาร์เรย์เพิ่มเติม
- key_compare_func — callback เปรียบเทียบคีย์
- value_compare_func — callback เปรียบเทียบค่า
ค่าที่คืนกลับ
คืนค่าอาร์เรย์จาก arr1 ที่ไม่มีในอาร์เรย์อื่น (เปรียบเทียบคีย์และค่า)
ตัวอย่างการใช้งาน
<?php
function key_compare($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
function val_compare($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_udiff_uassoc($arr1, $arr2, "key_compare", "val_compare");
print_r($res);
?>
ผลลัพธ์
Array
(
[c] => mouse
)
คีย์ c เหมือนกันแต่ค่า mouse ต่างจาก headphone จึงอยู่ในผลลัพธ์