[英]Multi-dimensional arrays: Remove duplicates and clock them to the original array
I want to remove duplicate arrays, and at the same time add a new key 'duplicates' and the total number of duplicates to the original array. 我想删除重复的数组,并同时添加一个新键“ duplicates”,并将重复的总数添加到原始数组。 What's the best way to do this using PHP? 使用PHP做到这一点的最佳方法是什么?
Array
(
[0] => Array
(
[w] => 10
[r] => 10
[e] => 489
)
[1] => Array
(
[w] => 10
[r] => 10
[e] => 489
)
[2] => Array
(
[w] => 10
[r] => 10
[e] => 489
)
[3] => Array
(
[w] => 20
[r] => 20
[e] => 489
)
[4] => Array
(
[w] => 10
[r] => 10
[e] =>
)
)
Would become: 会成为:
Array
(
[0] => Array
(
[w] => 10
[r] => 10
[e] => 489
[duplicates] => 2
)
[3] => Array
(
[w] => 20
[r] => 20
[e] => 489
)
[4] => Array
(
[w] => 10
[r] => 10
[e] =>
)
)
You can get the unique arrays, and then compare with the original array: 您可以获取唯一的数组,然后与原始数组进行比较:
$result = array_map("unserialize", array_unique(array_map("serialize", $input)));
foreach ($result as &$arr) {
$cnt = 0;
foreach ($input as $inArr) {
if ($arr == $inArr) {
$cnt++;
}
}
if ($cnt > 1) {
$arr['duplicates'] = $cnt - 1;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.