Php 查找对象集之间的差异
我有两个对象,想找出它们之间的区别。仅返回差异的数组或对象。这两个对象如下所示Php 查找对象集之间的差异,php,laravel,Php,Laravel,我有两个对象,想找出它们之间的区别。仅返回差异的数组或对象。这两个对象如下所示 { "new": { "crc_code": "00", "serial_number": "239-03", "reason": "Ir/b4c - no center rib", "project_id": 9, "wafer_id": 1, "equipment_status_code_id": 7,
{
"new": {
"crc_code": "00",
"serial_number": "239-03",
"reason": "Ir/b4c - no center rib",
"project_id": 9,
"wafer_id": 1,
"equipment_status_code_id": 7,
"plate_container_id": null,
"supplier_id": 1,
"container_slot_id": null,
"plate_quality_id": 1
},
"old": {
"crc_code": "00",
"serial_number": "239-03",
"reason": "Ir/b4c - no center rib",
"project_id": 9,
"wafer_id": 1,
"equipment_status_code_id": 2,
"plate_container_id": null,
"supplier_id": 1,
"container_slot_id": null,
"plate_quality_id": 2
}
}
最好的办法是什么
更新有人问我已经尝试了什么
沿着这条线的东西
array_udiff($new, $old, function ($obj_a, $obj_b) {
return strcmp($obj_a, $obj_b);
}
);
但是没有到达那里 使用:
使用:
到目前为止你试过什么?你想在这里找到什么不同?预期的输出是什么?您想要对象值之间的差异吗?或者一个对象中存在而另一个对象中不存在的键?@tejuc值差异。到目前为止,您尝试了什么?您想在这里找到什么差异?预期的输出是什么?您想要对象值之间的差异吗?或者一个对象中存在而另一个对象中不存在的键?@tejuc值差。这里不是php极客<代码>数组差异关联($old->new,$new->old)代码>对我没有任何帮助。然而,删除新的和旧的都会返回结果。这里不是一个php极客<代码>数组差异关联($old->new,$new->old)代码>对我没有任何帮助。然而,删除新的和旧的正在返回结果。
return array_diff_assoc($obj->new, $obj->old);
// convert object to array
$arr = json_decode(json_encode($obj), true);
// get the diff
$diff = array_diff($arr['new'], $arr['old']);
// result
array:1 [
"equipment_status_code_id" => 7
]