تابع array_diff_uassoc() در PHP
مثال
مقایسه نامکلیدها و مقادیر آرایهها (با استفاده از یک تابع کاربر تعریف شده برای مقایسه نامکلیدها) و بازگرداندن تفاوتها:
<?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("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
تعریف و استفاده
تابع array_diff_uassoc() برای مقایسه دو (یا بیشتر از دو) آرایه و بازگرداندن تفاوتها استفاده میشود.
نکته:این تابع از یک تابع کاربر تعریف شده برای مقایسه نامکلیدها استفاده میکند!
این تابع دو (یا بیشتر از دو) آرایه را مقایسه میکند و یک آرایه تفاوت بازمیگرداند که شامل تمام مواردی است که درarray1but not in any other parameter array (array2 or array3 etc.) keys and values.
نحوه استفاده
array_diff_uassoc(array1,array2,array3,...myfunction);
پارامترها | توضیح |
---|---|
array1 | لازم. آرایه اولی که با آرایههای دیگر مقایسه میشود. |
array2 | لازم. آرایهای که با آرایه اول مقایسه میشود. |
array3,... | اختیاری. آرایههایی که با آرایه اول مقایسه میشوند. |
myfunction | لازم. تعریف یک رشته قابل فراخوانی برای تابع مقایسه. |
توضیح
تابع array_diff_uassoc() از یک تابع کاربر تعریف شده (کالبد) برای بررسی شاخص استفاده میکند تا تفاوت بین دو یا چند آرایه را محاسبه کند. یک آرایه بازمیگرداند که شامل مواردی است که در array1 but not in any other parameter array.
Note that unlike the array_diff() function, the keys are also compared.
The parameter myfunction is a user-defined function used to compare two arrays, which must have two parameters - namely the keys to be compared. Therefore, it is exactly opposite in behavior to the array_diff_assoc() function, which uses an internal function for comparison.
The keys in the returned array remain unchanged.
Technical Details
Return Value: | Returns the difference set array, which includes all the values in the compared arrays (array1but not in any other parameter array (array2 or array3 etc.) keys and values. |
PHP Version: | 5+ |
More Examples
Example 1
Compare the keys and values of three arrays (using a user-defined function to compare keys) and return the difference set:
<?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"=>"red","b"=>"green","d"=>"blue"); $a3=array("e"=>"yellow","a"=>"red","d"=>"blue"); $result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>