تابع array_udiff_uassoc() در PHP

مثال

مقایسه نام کلید و مقدار کلید دو آرایه (با استفاده از توابع کاربر تعریف شده) و بازگرداندن اختلاف:

<?php
function myfunction_key($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}
function myfunction_value($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","c"=>"green");
$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);
?>

مثال اجرایی

تعریف و استفاده

تابع array_udiff_uassoc() برای مقایسه نام کلید و مقدار کلید دو آرایه (یا بیشتر از دو آرایه) و بازگرداندن اختلاف استفاده می‌شود.

نکته:این تابع از دو تابع کاربر تعریف شده برای مقایسه استفاده می‌کند؛ اولین تابع برای مقایسه نام کلید و دومین تابع برای مقایسه مقدار کلید استفاده می‌شود!

این تابع دو آرایه (یا بیشتر از دو آرایه) را مقایسه می‌کند و یک آرایه اختلافی بازمی‌گرداند که شامل تمامی عناصر در آرایه‌های مقایسه شده است (array1در ...)، اما در هیچ یک از آرایه‌های پارامترهای دیگر نیست (array2 یا array3 کلیدها و مقادیر در ...)

توضیحات

تابع array_udiff_uassoc() بازگشت array1 قسمتی از آرایه وجود دارد که در آرایه‌های دیگر وجود ندارد. آرایه‌ای که بازمی‌گردانده می‌شود شامل کلیدهای بدون تغییر است.

لطفاً توجه داشته باشید که array_diff() و array_udiff() تفاوت این است که نام کلید نیز برای مقایسه استفاده می‌شود. همچنین مقایسه نام کلید و مقدار کلید انجام می‌شود، مانند "a"=>1 و "b"=>1 این دو عنصر برابر نیستند.

بررسی نام کلید (شاخص) نیز توسط تابع بازگشتی انجام می‌شود. myfunction_key اين كار به صورت انجام شده است. اين و array_udiff_assoc() رفتار متفاوت است، که با استفاده از فنون داخلی مقایسه شاخص‌ها انجام می‌شود.

مقایسه داده‌های آرایه با استفاده از فنون بازگشتی کاربر انجام می‌شود myfunction_value انجام می‌شود. در این زمینه و array_diff_assoc() رفتار دقیقاً برعکس، که با استفاده از فنون داخلی مقایسه می‌شود.

این دو فنون دو پارامتر برای مقایسه دارند. اگر اولین پارامتر کمتر از دومین پارامتر باشد، فنون بازمی‌گردد یک عدد منفی، اگر دو پارامتر برابر باشند، باید 0 بازگردانده شود، اگر اولین پارامتر بزرگتر از دومین پارامتر باشد، فنون بازمی‌گردد یک عدد مثبت.

جملات

array_udiff_uassoc(array1,array2,array3...,myfunction_key,myfunction_value)
پارامترها توضیح
array1 ضروری. آرایه اول که با آرایه‌های دیگر مقایسه می‌شود.
array2 ضروری. آرایه‌ای که با اولین آرایه مقایسه می‌شود.
array3,... اختیاری. آرایه‌های دیگری که با اولین آرایه مقایسه می‌شوند.
myfunction_key

ضروری. نام فنون کاربر تعریف شده برای مقایسه نام‌های آرایه.

مقدار رشته‌ای، تعریف فنون قابل فراخوانی مقایسه. اگر اولین پارامتر کمتر از یا برابر با دومین پارامتر باشد، فنون مقایسه باید عدد صحیح کمتر از یا برابر با 0 را بازگرداند.

myfunction_value

ضروری. نام فنون کاربر تعریف شده برای مقایسه کلیدهای آرایه.

مقدار رشته‌ای، تعریف فنون قابل فراخوانی مقایسه. اگر اولین پارامتر کمتر از یا برابر با دومین پارامتر باشد، فنون مقایسه باید عدد صحیح کمتر از یا برابر با 0 را بازگرداند.

جزئیات فنی

مقدار بازگشتی: بازگرداندن آرایه تفاوت‌ها، که شامل تمام آرایه‌هایی است که در آن‌ها مقایسه می‌شوند (array1در ...)، اما در هیچ یک از آرایه‌های پارامترهای دیگر نیست (array2 یا array3 کلیدها و مقادیر در ...)
نسخه PHP: 5+