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