これがコードです、それは非常に簡単です:
<?php
$tab = array (
(object)array( 'id' => 1,),
(object)array( 'id' => 4,),
(object)array( 'id' => 12,),
(object)array( 'id' => 22,),
(object)array( 'id' => 25,),
);
$tab_json = array (
(object)array( 'id' => 1,),
(object)array( 'id' => 4,),
(object)array( 'id' => 12,),
(object)array( 'id' => 22,),
(object)array( 'id' => 25,),
(object)array( 'id' => 2,),
);
$difference = array_udiff($tab_json, $tab, function($a, $b) {
echo $a->id." <-> ".$b->id."\n";
return (count(array_diff_assoc(get_object_vars($a), get_object_vars($b))))>0;
});
?>
出力は次のとおりです。
12 <-> 4
12 <-> 1
12 <-> 22
12 <-> 25
2 <-> 12
4 <-> 25
4 <-> 1
22 <-> 4
25 <-> 1
12 <-> 4
12 <-> 1
12 <-> 22
25 <-> 12
4 <-> 22
1 <-> 4
1 <-> 22
1 <-> 4
1 <-> 1
1 <-> 25
25 <-> 4
25 <-> 1
25 <-> 12
25 <-> 25
25 <-> 4
4 <-> 1
4 <-> 12
4 <-> 25
4 <-> 22
22 <-> 1
22 <-> 12
22 <-> 25
22 <-> 12
12 <-> 1
12 <-> 12
12 <-> 2
2 <-> 12
2 <-> 25
計算方法がわかりません。見てください12
:10回以上比較されています(私が理解していることから、2番目の配列の要素数以下で比較する必要があります)。さらに、3回比較されています。1
!!
テスト済み:
PHP 5.3.9
PHP 5.3.2-1ubuntu4.14