تفاضل کلید کاربری (array_diff_ukey)
«تفاضل کلید کاربری» یعنی مقایسه «کلید (Key)» آرایه ها با «تابع دلخواه (User-defined Function)». فرض کن اسم ها کلید هستند. سپس تفاوت کلیدهای دفتر اول را پیدا می کنیم.
تعریف ساده و کاربرد تفاضل کلید کاربری
تابع array_diff_ukey() فقط «کلیدها» را می سنجد. اما سنجش کلید با تابع خودت انجام می شود. خروجی، اعضایی از آرایه اول است که کلیدشان در بقیه نیست.
سینتکس کوتاه
array_diff_ukey(array1, array2, array3, ..., myfunction)
پارامترها
- array1: آرایه مبنا برای تفاضل.
- array2, array3,...: آرایه های مرجع برای مقایسه.
- myfunction: تابع مقایسه کلید؛ باید عدد منفی، صفر، یا مثبت برگرداند.
مثال پایه: تفاضل فقط براساس کلید
کلیدها با تابع کاربری مقایسه می شوند. سپس تفاوت های کلیدی از $a1 برمی گردد.
<?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_diff_ukey($a1, $a2, "myfunction");
print_r($result);
?>
مثال سه آرایه ای با تفاضل کلید کاربری
در این نمونه، سه آرایه مقایسه می شوند. فقط کلیدها سنجیده می شوند.
<?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" => "black", "b" => "yellow", "d" => "brown");
$a3 = array("e" => "purple", "f" => "white", "a" => "gold");
$result = array_diff_ukey($a1, $a2, $a3, "myfunction");
print_r($result);
?>
گام های عملی سریع
- آرایه مبنا را بساز. کلیدها معنی دار باشند.
- آرایه های مرجع را آماده کن. داده مقایسه مشخص باشد.
- تابع مقایسه را بنویس. خروجی منفی، صفر، یا مثبت باشد.
array_diff_ukey()را اجرا کن. نتیجه را چاپ کن.- اگر خروجی خالی بود، کلید مشترک وجود دارد.
نکات و خطاهای رایج
- فقط کلیدها مقایسه می شوند؛ مقدارها نقشی ندارند.
- ترتیب آرایه ها مهم است؛ خروجی از آرایه اول می آید.
- تابع مقایسه باید عدد برگرداند؛ غیر از این، نتیجه نادرست می شود.
- برای «تفاضل کلید»، صفحه array_diff_key را ببین.
- برای «تفاضل انجمنی کاربری»، صفحه array_diff_uassoc را بررسی کن.
- همچنین تفاضل کلید کاربری را به عنوان مرجع سریع نگه دار.
جمع بندی سریع
- تفاضل کلید کاربری فقط کلیدها را می سنجد.
- تابع مقایسه کلید ضروری است.
- خروجی فقط از آرایه اول است.
- ترتیب آرایه ها نتیجه را عوض می کند.