$users = array(
array(1,'name1'),
array(1,'name1'),
array(2,'name2'),
array(3,'name3')
);
现在添加以下代码后,我可以制作唯一的数组。
array_map("unserialize", array_unique(array_map("serialize", $users)));
我可以使用以下代码计算重复项。但它缺少名称字段。所以,我需要做一些事情来获取名称以及副本的ID和数量。
array_count_values(array_map(function($item) {
return $item['id'];
}, $users));
我是否需要循环数组得到这样的东西?或者在php中还有其他技巧吗?
$new_users = array(
array(1,'name1', 2), //two times + descending order
array(2,'name2', 1),
array(3,'name3', 1)
);
答案 0 :(得分:2)
-- Set the delimiter
DELIMITER $$
CREATE TRIGGER `end_time_update` AFTER UPDATE ON `mytable`
FOR EACH ROW
BEGIN
UPDATE mytable
set endtime = now(), duration = TIMESTAMPDIFF(SECOND, starttime, endtime)
where id = new.id;
END;
$$
-- Reset the delimiter
DELIMITER ;
要进行重复数据删除,请在数组中使用唯一键。这里我们使用序列化数组的散列作为键,这是唯一一种唯一标识比单个值更复杂的东西的方法。如果该项目已存在,则只需增加一个计数器。