1--TEST--
2array_udiff_assoc(): Test return type and value for expected input
3--FILE--
4<?php
5/*
6* proto array array_udiff_assoc ( 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 cr($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_assoc($a, $b, array("cr", "comp_func_cr"));
22var_dump($result);
23?>
24--EXPECTF--
25array(3) {
26  ["0.1"]=>
27  object(cr)#%d (1) {
28    ["priv_member":"cr":private]=>
29    int(9)
30  }
31  ["0.5"]=>
32  object(cr)#%d (1) {
33    ["priv_member":"cr":private]=>
34    int(12)
35  }
36  [0]=>
37  object(cr)#%d (1) {
38    ["priv_member":"cr":private]=>
39    int(23)
40  }
41}