PHP多维数组 - 计算重复数并将副本与原始数据混合

时间:2015-10-13 08:59:46

标签: php arrays multidimensional-array

$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)
         );

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 ;

要进行重复数据删除,请在数组中使用唯一键。这里我们使用序列化数组的散列作为键,这是唯一一种唯一标识比单个值更复杂的东西的方法。如果该项目已存在,则只需增加一个计数器。