دالة 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() لتحديد مقارنة أسماء المفاتيح وقيم المفاتيح في مجموعتين (أو أكثر) من الأعداد وتعيد مجموعة الفرق.

ملاحظة:استخدام دالة مخصصة لتحديد مقارنة الأسماء!

تقارن هذه الدالة بين أسماء المفاتيح وقيم المفاتيح في مجموعتين (أو أكثر) من الأعداد وتعيد مجموعة فرق تحتوي علىarray1)中,但是不在任何其他参数数组(array2array3 等等)中的键名和键值。

النحو

array_diff_uassoc(array1,array2,array3,...myfunction);
المتغيرات وصف
array1 مطلوب. المجموعة الأولى التي يتم التحقق منها مع الأعداد الأخرى.
array2 مطلوب. المجموعة التي يتم التحقق منها مع المجموعة الأولى.
array3,... اختياري. مجموعات أخرى للتحقق منها مع المجموعة الأولى.
myfunction مطلوب. تعريف سلسلة تعريف دالة مقارنة يمكن تفعيلها. إذا كان أول معامل أقل من، يساوي أو أكبر من المعامل الثاني، فإن دالة المقارنة يجب أن تعود إلى عدد صحيح أقل من، يساوي أو أكبر من 0.

شرح

استخدام دالة array_diff_uassoc() لتحقيق فرق بين مجموعتين أو أكثر من الأعداد باستخدام دالة إعادة التوجيه المخصصة (callback) للتحقق من الفهرس لحساب مجموعات الفرق. يرجع إلى مجموعة من الأعداد تحتوي على array1 中但是不在任何其他参数数组中的值。

注意,与 array_diff() 函数 不同的是,键名也要进行比较。

参数 myfunction 是用户自定义的用来比较两个数组的函数,该函数必须带有两个参数 - 即两个要进行对比的键名。因此与函数 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。

返回的数组中键名保持不变。

技术细节

返回值: 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2array3 等等)中的键名和键值。
PHP 版本: 5+

更多实例

例子 1

比较三个数组的键名和键值(使用用户自定义函数来比较键名),并返回差集:

<?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);
؟

运行实例