如何从PHP中的数组数组中删除重复的元素

时间:2017-09-06 09:36:25

标签: php arrays

"2017-08-31":["5948a0dd21146a43fdcfef5a","5948a0dd21146a43fdcfef5a"]
"2017-08-22":["5948a0dd21146a43fdcfef5a"]
"2017-08-09":["59461ceae6179b19403c6a19","59461ceae6179b19403c6a19"]
"2017-08-08":["59461ceae6179b19403c6a19","59461ceae6179b19403c6a19"]

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

3 个答案:

答案 0 :(得分:3)

只需同时使用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));

答案 1 :(得分:2)

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

答案 2 :(得分:0)

如果可能的话,最好使用SQL。否则,你可以试试这个:

$array = array_unique($array, SORT_REGULAR);