21,886
社区成员
发帖
与我相关
我的任务
分享
// 数据库中查出来的所有数据
$dbData = array(
array(0, '张三', '吃饭'),
array(1, '李四', '吃饭'),
);
// excel中的数据
$excelData = array(
array('张三', '吃饭'), // 与 $excelData中数据重复
array('李四', '吃饭'), // 与 $excelData中数据重复
array('张三', '喝水') // *应该促入数据库的数据<<<
);
$mark = array(); // 用来当作唯一标识的容器
foreach ($dbData as $arr) {
$md5Mark = md5($arr[1] . $arr[2]);
$mark[$md5Mark] = 1;
}
foreach ($excelData as $key => $arr) {
$md5Mark = md5($arr[0] . $arr[1]);
if (isset($mark[$md5Mark])) {
unset($excelData[$key]);
}
}
p($excelData);
/*
Array
(
[2] => Array
(
[0] => 张三
[1] => 喝水
)
)
*/
$excelData = array(
array('张三', '吃饭'),
array('李四', '吃饭'),
array('张三', '喝水'),
array('李四', '吃饭'),// 重复
array('张三', '喝水') // 重复
);
$mark = array(); // 用来当作唯一标识
foreach ($excelData as $key => $arr) {
$md5Mark = md5($arr[0] . $arr[1]);
if (isset($mark[$md5Mark])) {
unset($excelData[$key]);
} else {
$mark[$md5Mark] = 1;
}
}
// 此时你就可以操作$excelData而不用判断了,当然了你也可以直接在else中进行sql语句的组合或者数据库写入操作
p($excelData);
/*
输出:
Array
(
[0] => Array
(
[0] => 张三
[1] => 吃饭
)
[1] => Array
(
[0] => 李四
[1] => 吃饭
)
[2] => Array
(
[0] => 张三
[1] => 喝水
)
)
*/