我有兩個這樣的對象。比較兩個PHP對象 - PHP和OBJECTS
$陣列1
stdClass Object (
[BellId] => 2
[BellCode] => BP001
[BellDescription] => SPI SPEED ABNORMAL,CHK BELT
[ControllerId] => 3
[CreatedBy] => 1
[CreatedOn] => 2016-08-19 15:09:25
[ModifiedBy] =>
[ModifiedOn] =>
)
$數組2
stdClass Object (
[BellId] => 1
[BellCode] => BP002
[BellDescription] => MCB TRIPPED,CHK MTR SHORT,O/L.
[ControllerId] => 3
[CreatedBy] => 1
[CreatedOn] => 2016-08-19 15:09:25
[ModifiedBy] =>
[ModifiedOn] =>
)
我需要比較這個對象,並得到僅在這兩個對象的區別。
我檢查了下面的鏈接,但沒有用。
Comparing two stdClass Objects
我的示例代碼如下所示
function recursive_array_diff($a1, $a2) {
$r = array();
foreach ($a1 as $k => $v) {
if (array_key_exists($k, $a2)) {
if (is_array($v)) {
$rad = recursive_array_diff($v, $a2[$k]);
if (count($rad)) {
$r[$k] = $rad;
}
} else {
if ($v != $a2[$k]) {
$r[$k] = $v;
}
}
} else {
$r[$k] = $v;
}
}
return $r;
}
有人可以幫助我的代碼。
您可以檢查這個答案,這似乎是使用相同的功能,你http://stackoverflow.com/questions/5911067/compare-object-屬性和顯示差異在PHP中/ 5922429#5922429 –
我已經發布了一個答案,但我想問你爲什麼要在你的代碼中做遞歸比較?您指定的對象示例只有一個深度。 –