【问题标题】:Delete Duplicates in Multidimensional Array [duplicate]删除多维数组中的重复项[重复]
【发布时间】:2017-11-20 10:13:15
【问题描述】:

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

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

在带有“...”的括号中,我写了“国家”、“名称”、“年份”等参数。现在,当我通过一个循环运行它时,$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';

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

【问题讨论】:

  • 请显示一些示例输入数组以便清楚。
  • 我认为你的数组是多维的,请检查这个stackoverflow.com/questions/3598298/…
  • @AlivetoDie 我添加了一个示例。我将再次靠近其他“可能的重复项”,但到目前为止这些解决方案对我不起作用。

标签: php arrays multidimensional-array


【解决方案1】:

你可以这样做:-

$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

【讨论】:

  • 这对我来说很好用。谢谢。
  • @C.Henke 很高兴为您提供帮助:):)
猜你喜欢
  • 2016-11-04
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 2017-07-23
  • 2014-05-26
  • 2012-12-14
  • 2021-02-16
  • 1970-01-01
相关资源
最近更新 更多