اشتراک کاربری (array_uintersect)
در «اشتراک کاربری (array_uintersect)» فقط «مقدار (Value)»ها سنجیده می شوند. سپس مشترک ها برگردانده می شوند. «تابع کاربری (User-defined Function)» یعنی تابعی که خودت می نویسی تا مقایسه انجام شود.
تعریف و کاربرد اشتراک کاربری
array_uintersect مقدارهای دو یا چند آرایه را با تابع کاربری می سنجد. سپس فقط مقدارهای مشترک آرایه اول را برمی گرداند. کلیدها در این تابع اهمیتی ندارند.
سینتکس (Syntax)
array_uintersect($array1, $array2, $array3, ..., $compareFn);
مثال 1: اشتراک مقدارهای دو آرایه
تابع مقایسه باید عدد برگرداند: 0 برابر، 1 بزرگ تر، -1 کوچک تر.
<?php
function myfunction($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
}
$a1 = array("a" => "red", "b" => "green", "c" => "blue");
$a2 = array("a" => "blue", "b" => "black", "e" => "blue");
$result = array_uintersect($a1, $a2, "myfunction");
print_r($result);
?>
گام های عملی
- دو آرایه با مقدارهای رنگ بساز.
- تابع مقایسه مقدار را تعریف کن.
- array_uintersect را با تابعت صدا بزن.
- نتیجه مشترک ها را چاپ کن.
مثال 2: اشتراک مقدارهای سه آرایه
در این مثال، هر سه آرایه با همان تابع کاربری سنجیده می شوند.
<?php
function myfunction($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
}
$a1 = array("a" => "red", "b" => "green", "c" => "blue", "yellow");
$a2 = array("A" => "red", "b" => "GREEN", "yellow", "black");
$a3 = array("a" => "green", "b" => "red", "yellow", "black");
$result = array_uintersect($a1, $a2, $a3, "myfunction");
print_r($result);
?>
نکته: کلیدها نادیده گرفته می شوند. بنابراین تمرکز فقط روی مقدارهاست.
لینک های داخلی مرتبط
پیشنهاد می شود این ها را هم ببینید: تفاضل کاربری، اشتراک کاربری انجمنی، و اشتراک کاربری انجمنی+کلید.
جمع بندی سریع
- فقط مقدارها مقایسه می شوند.
- تابع کاربری مقایسه را کنترل می کند.
- خروجی، مشترک های آرایه اول است.
- کلیدها در نتیجه اثری ندارند.