作为程序员一定要保持良好的睡眠,才能好编程

记录此次提交数据数据与数据库数据变化的方法

发布时间:2020-03-04



获取两次提交数据变化的方法

 
 
             //从数据库中获取到的数据
             $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);