array_uintersect()
เชื่อว่าหลายๆคนคงรู้จักกับคำ intersec,หรือ intersection ที่แปลว่าจุดตัด มาบ้าง อย่างในเรื่อง set ในวิชาคณิตศาสตร์เองก็มีสอนเรื่องนี้ ส่วนใน PHP programming ก็มี ฟังก์ชันจัดการเรื่องนี้เช่นเดียวกัน
array_uintersect () เป็นฟังก์ชั่นที่ใช้ในการคำนวณจุดตัดของสอง Array (อาเรย์)หรือมากกว่าขึ้นอยู่กับค่า(value) ค่าอาร์เรย์แรกจะถูกเปรียบเทียบกับอาร์เรย์อื่นทั้งหมดด้วยความช่วยเหลือของฟังก์ชั่นที่ผู้ใช้กำหนดและคืนค่าการจับคู่ที่ได้
array_uintersect ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array
พารามิเตอร์
- List of arrays : ฟังก์ชันนี้รับรายการของอาร์เรย์ที่คั่นด้วยช่องว่างที่เราต้องการค้นหาจุดตัด ใน Syntex ด้านบนรายการของอาร์เรย์อย่าง
$array1
,$array2
,$array3
... ..
$
มันสามารถรับจำนวนของอาร์เรย์ใด ๆ ที่คั่นด้วยช่องว่างด้วย ซึ่งขั้นต่ำ 2 อาเรย์ - user_function : เป็นพารามิเตอร์ประเภทสตริงซึ่งเป็นชื่อของฟังก์ชั่นที่ผู้ใช้กำหนด ฟังก์ชันส่งคืนค่า 0 เมื่อค่าในพารามิเตอร์เหมือนกัน และคืนค่า 1 หากพารามิเตอร์แรกมากกว่าค่าที่สอง นอกเหนือจากนั้นจะส่งกลับค่า -1
ตัวอย่างการใช้งาน
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>
ผลลัพธ์ที่ได้ดังนี้
Array
(
[a] => green
[b] => brown
[0] => red
)
จากโค้ดตัวอย่างถ้าเราดู $array1
กับ $array2
ด้วยตาแล้ว เราพอจะรู้ไปได้ว่า มีอาเรย์ตัวไหนบ้างที่ตัดกัน ซึ่งนั้นก็คือ green,brown, และ red ซึ่งจะเรียกเป็นการจับคู่ก็ได้โดย จะคำนึงถึง อาเรย์ตัวแรกเป็นหลักหรือเป็นที่ตั้ง และหาค่าจะอาเรย์ตัวที่มีเหมือนกัน ผลลัพธืที่ได้เมื่อเราทำการ print_r() เพื่อแสดงข้อมูลใน array ดังด้านบนครับ