1--TEST--
2array_udiff():Test return type and value for expected input
3--FILE--
4<?php
5/*
6* proto array array_udiff ( array $array1, array $array2 [, array $ ..., callback $data_compare_func] )
7* Function is implemented in ext/standard/array.c
8*/
9class cr {
10    private $priv_member;
11    function __construct($val) {
12        $this->priv_member = $val;
13    }
14    static function comp_func_cr($a, $b) {
15        if ($a->priv_member === $b->priv_member) return 0;
16        return ($a->priv_member > $b->priv_member) ? 1 : -1;
17    }
18}
19$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1 => new cr(4), 2 => new cr(-15),);
20$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1 => new cr(4), 2 => new cr(-15),);
21$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
22var_dump($result);
23?>
24--EXPECTF--
25array(2) {
26  ["0.5"]=>
27  object(cr)#%d (1) {
28    ["priv_member":"cr":private]=>
29    int(12)
30  }
31  [0]=>
32  object(cr)#%d (1) {
33    ["priv_member":"cr":private]=>
34    int(23)
35  }
36}
37