Qual é a diferença entre array_udiff_assoc e array_diff_uassoc

Qual é a diferença entre array_udiff_assoc e array_diff_uassoc

para array_udiff_assoc eu recebo essa coisa

"Cat","b"=>"Dog","c"=>"Horse"); $a2=array("a"=>"Cat","b"=>"Horse","c"=>"Dog"); print_r(array_udiff_assoc($a1,$a2,"myfunction")); ?> 

resultado

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

também array_diff_uassoc

  "Cat","b"=>"Dog","c"=>"Horse"); $a2=array("a"=>"Cat","b"=>"Horse","c"=>"Dog"); print_r(array_diff_uassoc($a1,$a2,"myfunction")); ?> 

o resultado é o mesmo que o primeiro

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

É que tem alguma diferença, se tiver o que é isso. O manual Php não diz que são alias, como costumavam dizer.

Ambos fazem o mesmo, mas udiff-assoc compara os DADOS com a function fornecida pelo usuário, enquanto o diff-uassoc compara o INDEX com a function fornecida pelo usuário.

Como uma resposta para @lonsesomeday: conforme indicado pelo ‘u’, o diff_assoc usará funções internas para todas as comparações, e udiff_uassoc usará as devoluções de retorno fornecidas para comparação de índice e dados.

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

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

array_udiff_assoc – Calcula a diferença de arrays com verificação de índice adicional, compara dados por uma function de retorno de chamada
array_diff_uassoc – Calcula a diferença de arrays com verificação de índice adicional que é executada por uma function de retorno de chamada fornecida pelo usuário

Portanto, a function difere no local onde eles usam a function de retorno de chamada. udiff_assoc usa o retorno de chamada para comparar elementos, o diff_uassoc usa o retorno de chamada ao comparar os índices.