php - array_udiff_assoc

Description

array array_udiff_assoc ( array $array1, array $array2 [, array $ ..., callback $data_compare_func] )
array_udiff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison.

Example 275. array_udiff_assoc() example
<?phpclass cr {
 private
$priv_member;
 function
cr($val)
 {
  $this->priv_member = $val;
 }

 function
comp_func_cr($a, $b)
 {
  if (
$a->priv_member === $b->priv_member) return 0;
  return (
$a->priv_member > $b->priv_member)? 1:-1;
 }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);

$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);
$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));

print_r($result);

?>

The above example will output:
Array
(
   [0.1] => cr Object
       (
           [priv_member:private] => 9
       )

   [0.5] => cr Object
       (
           [priv_member:private] => 12
       )

   [0] => cr Object
       (
           [priv_member:private] => 23
       )
)

No comments:

Post a Comment