- var_dump: documentation ( source)
- spl_object_id: documentation ( source)
- array_udiff: documentation ( source)
<?php
function array_diff_objects (array $array1, array ... $arrays): array
{
$arrays[] = function (object $a, object $b)
{
if ($a === $b)
{
return 0;
}
return spl_object_id($a) > spl_object_id($b) ? -1 : 1;
};
return array_udiff($array1, ... $arrays);
}
class C {}
$a = new C; $a->foo = 'aa';
$b = new C; $b->foo = 'bb';
$c = new C; $c->foo = 'cc';
var_dump(array_diff_objects([$b, $a, $c], [$c, $b]));