如何从二维数组的每一行中删除重复元素? [重复]

问题描述 投票:0回答:3
"2017-08-31":["5948a0dd21146a43fdcfef5a","5948a0dd21146a43fdcfef5a"]
"2017-08-22":["5948a0dd21146a43fdcfef5a"]
"2017-08-09":["59461ceae6179b19403c6a19","59461ceae6179b19403c6a19"]
"2017-08-08":["59461ceae6179b19403c6a19","59461ceae6179b19403c6a19"]

我有一个像这样的数组,键是一个日期和与该日期关联的多个值,但我需要该键的唯一值。如何做到这一点? 我尝试过 array_unique 但没有运气!

我想要的结果:

"2017-08-31":["5948a0dd21146a43fdcfef5a"]
"2017-08-22":["5948a0dd21146a43fdcfef5a"]
"2017-08-09":["59461ceae6179b19403c6a19"]
"2017-08-08":["59461ceae6179b19403c6a19"]
php arrays multidimensional-array filter duplicates
3个回答
4
投票

只需将 array_maparray_unique 一起使用即可。

<?php
$a = json_decode('{"2017-08-31":["5948a0dd21146a43fdcfef5a","5948a0dd21146a43fdcfef5a"],
                   "2017-08-22":["5948a0dd21146a43fdcfef5a"],
                   "2017-08-09":["59461ceae6179b19403c6a19","59461ceae6179b19403c6a19"],
                   "2017-08-08":["59461ceae6179b19403c6a19","59461ceae6179b19403c6a19"]}', true);

echo json_encode(array_map("array_unique", $a));

2
投票
$array = your array   
$array = array_map(function($val){return array_unique($val);}, $array);

1
投票

如果可能的话,最好使用 SQL 来完成此操作。否则,你可以尝试这个:

$array = array_unique($array, SORT_REGULAR);
© www.soinside.com 2019 - 2024. All rights reserved.