فنکشن array_udiff() در PHP
مثال
مقایسه کلیدهای دو آرایه (با استفاده از فنکشنهای تعریف شده توسط کاربر برای مقایسه کلیدها) و بازگرداندن تفاوتها:
<?php فونکشن 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_udiff($a1,$a2,"myfunction"); print_r($result); ?>
تعریف و استفاده
فنکشن array_udiff() برای مقایسه کلیدهای دو (یا بیشتر) آرایه و بازگرداندن تفاوتها استفاده میشود.
نکته:نکته: این فنکشن از فنکشنهای تعریف شده توسط کاربر برای مقایسه کلیدها استفاده میکند!
این فنکشن مقایسه دو (یا بیشتر) آرایههای کلید را انجام میدهد و یک آرایه تفاوت برمیگرداند که شامل تمامی کلیدهایی است که در آرایههای مقایسه شده وجود دارند (array1در حالی که در هیچ یک از آرایههای پارامتر (array2 یا array3 وغیره) کلیدها و مقادیر را دربر میگیرد.
شرح
فنکشن array_udiff() یک آرایه برمیگرداند که شامل تمامی مقادیر است که در آرایههای مقایسه شده وجود دارند اما در هیچ یک از آرایههای پارامترها وجود ندارند، نامهای کلید بدون تغییر باقی میمانند.
فنکشن array_udiff() با array_diff() فنکشنها متفاوت رفتار دارند، دومین فنکشن با استفاده از فنکشن داخلی مقایسه میکند.
مقایسه دادهها با استفاده از فنکشن array_udiff() انجام میشود. myfunction انجام میشود.myfunction فنکشن دو پارامتر دارد که باید مقایسه شوند. اگر پارامتر اول کمتر از پارامتر دوم باشد، فنکشن یک عدد منفی برمیگرداند، اگر دو پارامتر برابر باشند، باید ۰ را برمیگرداند و اگر پارامتر اول بزرگتر از دوم باشد، یک عدد مثبت برمیگرداند.
ترتیب
array_udiff(array1,array2,array3...myfunction)
پارامترها | توضیح |
---|---|
array1 | ضروری. آرایهای که با آنها مقایسه میشود. |
array2 | ضروری. آرایههایی که با اولین آرایه مقایسه میشوند. |
array3,... | اختیاری. آرایههایی که با اولین آرایه مقایسه میشوند. |
myfunction |
ضروری. مقدار رشتهای، فونکشن قابل فراخوانی را تعریف میکند. اگر اولین پارامتر کمتر از یا مساوی با دومین پارامتر باشد، فونکشن مقایسه باید یک عدد صحیح کمتر از یا مساوی با صفر بازگرداند. |
جزئیات فنی
بازگشت مقدار: | بازگشت آرایه تفاوتها را که شامل تمام آرایههایی است که در مقایسه قرار گرفتهاند (array1در حالی که در هیچ یک از آرایههای پارامتر (array2 یا array3 وغیره) کلیدها و مقادیر را دربر میگیرد. |
نسخه PHP: | 5.1.0+ |
مثالهای بیشتر
مثال 1
مقایسه کلیدها و مقادیر سه تا آرایه (با استفاده از فونکشن تعریف شده توسط کاربر) و بازگشت مجموعه تفاوتها:
<?php فونکشن 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_udiff($a1,$a2,$a3,"myfunction"); print_r($result); ?>