为批量更新数据提供一种思路!
我们在做批量更新时,会遇到下面三种情况:
情况: 1. 要批量更新的数据为空
- 方法:略过
情况: 2. 库中已有的数据为空
- 方法:则要批量更新的数据全部入库
情况: 3. 要批量更新的数据和库中已有的数据都不为空
- 方法(举例):
// 要批量更新的数据
$update = [1,2,5,56];
// 库中已有的数据
$db = [2];
- 第一步:得到
交集intersect
// 得到`交集intersect`
$intersect = array_intersect($update, $db);
结果:
array:1 [
1 => 2
]
- 第二步:拿
要批量更新的数据update
与交集intersect
取差集,得到要插入库的数据
// 拿`要批量更新的数据update`与`交集intersect`取差集,得到要插入库的数据
$inserts = array_diff($update, $intersect);
结果:
array:3 [
0 => 1,
2 => 5,
3 => 56
]
以上结果为要插入库的数据
- 第三步:拿
库中已有的数据db
与交集intersect
取差集,得到从库中删除的数据
// 拿`库中已有的数据db`与`交集intersect`取差集,得到`从库中删除的数据`
$deletes = array_diff($db, $intersect);
结果:
[]
以上结果为从库中删除的数据
网友评论