删除多维数组中的重复项

时间:2017-11-20 10:13:15

标签: php arrays multidimensional-array

我有一个具有3个维度的数组:

$data_ary[$k_0][$v_0[4]]['...'] = ...

在' ...'的括号中我写了像" Country"," Designation"," Year"等等。现在,当我通过循环运行时,$ k_0的值将每个循环增加1,$ v_0 [4]总是更改特定值。

我的问题:通常,不同维度的值都是重复的。例如:

$data_ary[1][1]['Country'] = 'Germany';
$data_ary[1][1]['Year']    = '2017';
$data_ary[2][1]['Country'] = 'Germany';
$data_ary[2][1]['Year']    = '2017';

如何删除这些重复项?我已经尝试过array_unique(),但结果是27.000条目26999被删除..

一些示例输入:

$data_ary[6]['GERMANY']['YEAR']      = 2017;
$data_ary[6]['GERMANY']['MONTH']     = 1;
$data_ary[6]['GERMANY']['ID']        = 6010;
$data_ary[6]['GERMANY']['COUNTRY']   = 'GERMANY';

$data_ary[7]['ITALY']['YEAR']        = 2016;
$data_ary[7]['ITALY']['MONTH']       = 4;
$data_ary[7]['ITALY']['ID']          = 52752;
$data_ary[7]['ITALY']['COUNTRY']     = 'ITALY';

$data_ary[8]['GERMANY']['YEAR']      = 2017;
$data_ary[8]['GERMANY']['MONTH']     = 1;
$data_ary[8]['GERMANY']['ID']        = 6010;
$data_ary[8]['GERMANY']['COUNTRY']   = 'GERMANY';

如您所见,第一个和第二个基本相同,但第一个括号中的值不同。

1 个答案:

答案 0 :(得分:0)

你可以这样做: -

$input = array_map("unserialize", array_unique(array_map("serialize", $data_ary)));

print_r($input);

输出: - https://eval.in/903355

参考: - How to remove duplicate values from a multi-dimensional array in PHP