array_udiff_assoc和array_diff_uassoc之间的区别是什么?

时间:2012-02-02 17:35:30

标签: php arrays

array_udiff_assoc和array_diff_uassoc

之间有什么区别

对于array_udiff_assoc我得到了这个东西

<?php
 function myfunction($v1,$v2)
 {
 if ($v1===$v2)
   {
   return 0;
   }
 return 1;
 }
 $a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
 $a2=array("a"=>"Cat","b"=>"Horse","c"=>"Dog");
 print_r(array_udiff_assoc($a1,$a2,"myfunction"));
 ?>

结果

Array ( [b] Dog [c] => Horse )

还有array_diff_uassoc

  <?php
     function myfunction($v1,$v2)
     {
     if ($v1===$v2)
       {
       return 0;
       }
     return 1;
     }
     $a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
     $a2=array("a"=>"Cat","b"=>"Horse","c"=>"Dog");
     print_r(array_diff_uassoc($a1,$a2,"myfunction"));
     ?>

结果与第一个相同

Array ( [b] Dog [c] => Horse )

是否有任何区别,如果有的话。 Php手册没有像过去那样说它们是别名。

2 个答案:

答案 0 :(得分:5)

它们都是相同的,但是udiff-assoc将DATA与用户提供的函数进行比较,而diff-uassoc将INDEX与用户提供的函数进行比较。

作为对@lonsesomeday的回答:如'u'所示,diff_assoc将使用内部函数进行所有比较,udiff_uassoc使用提供的回调进行索引和数据比较。

http://www.php.net/manual/en/function.array-diff-uassoc.php

http://www.php.net/manual/en/function.array-udiff-assoc.php

答案 1 :(得分:0)

  

array_udiff_assoc - 使用附加索引检查计算数组的差异,通过回调函数比较数据
  array_diff_uassoc - 通过用户提供的回调函数执行附加索引检查来计算数组的差异

因此,函数在使用回调函数的位置不同。 udiff_assoc使用回调来比较元素,diff_uassoc在比较索引时使用回调。