| 1 |
lars |
1 |
--TEST--
|
|
|
2 |
Function -- array_udiff_assoc
|
|
|
3 |
--SKIPIF--
|
|
|
4 |
<?php if (function_exists('array_udiff_assoc')) { echo 'skip'; } ?>
|
|
|
5 |
--FILE--
|
|
|
6 |
<?php
|
|
|
7 |
require_once 'PHP/Compat.php';
|
|
|
8 |
PHP_Compat::loadFunction('array_udiff_assoc');
|
|
|
9 |
|
|
|
10 |
class cr {
|
|
|
11 |
var $priv_member;
|
|
|
12 |
function cr($val)
|
|
|
13 |
{
|
|
|
14 |
$this->priv_member = $val;
|
|
|
15 |
}
|
|
|
16 |
|
|
|
17 |
function comp_func_cr($a, $b)
|
|
|
18 |
{
|
|
|
19 |
if ($a->priv_member === $b->priv_member) return 0;
|
|
|
20 |
return ($a->priv_member > $b->priv_member)? 1:-1;
|
|
|
21 |
}
|
|
|
22 |
}
|
|
|
23 |
|
|
|
24 |
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
|
|
|
25 |
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);
|
|
|
26 |
|
|
|
27 |
$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
|
|
|
28 |
echo serialize($result);
|
|
|
29 |
?>
|
|
|
30 |
--EXPECT--
|
|
|
31 |
a:3:{s:3:"0.1";O:2:"cr":1:{s:11:"priv_member";i:9;}s:3:"0.5";O:2:"cr":1:{s:11:"priv_member";i:12;}i:0;O:2:"cr":1:{s:11:"priv_member";i:23;}}
|