我有一个具有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';
如您所见,第一个和第二个基本相同,但第一个括号中的值不同。
答案 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