获取两次提交数据变化的方法//从数据库中获取到的数据
$data = [
'name' => 'songsong',
'mobile' => '113000000',
'address' => '石家庄',
'code' => '123'
];
//模拟用户数据
$newData = [
'name' => 'james',
'mobile' => '18633333333333',
'address' => '石家庄',
'type' => 4555 //这是一个额外的值,数据库不存在,需要排除掉,不做比较
];
//1、求出两个数据的合集
$intersectData = array_intersect_key($data, $newData);
//2、得出要修改的字段的新数组
$intersectNewData = array_intersect_key($newData, $intersectData);
//3、以新旧数据对比 得出两边数据的差异
$diffData = array_diff($intersectData, $intersectNewData);
$logData = [];
foreach ($diffData as $key => $val) {
$str = ($intersectData[$key] ?? '') . ' => ' . ($intersectNewData[$key] ?? '');
$logData[$key] = $str;
}
dump($intersectNewData);
dump($intersectData);
dump('此次修改变动了',$logData);