--TEST-- array_udiff_uassoc --FILE-- 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; } function comp_func_key($a, $b) { if ($a === $b) return 0; return ($a > $b)? 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_uassoc($a, $b, "comp_func_cr", "comp_func_key"); $expected = array ( '0.1' => new cr(9), '0.5' => new cr(12), 0 => new cr(23), ); print_r($result); if ($result == $expected) { echo "\n--> works correctly\n"; } ?> --EXPECT-- Array ( [0.1] => cr Object ( [priv_member] => 9 ) [0.5] => cr Object ( [priv_member] => 12 ) [0] => cr Object ( [priv_member] => 23 ) ) --> works correctly