首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP中的特定键合并数组并删除重复

使用PHP中的特定键合并数组并删除重复
EN

Stack Overflow用户
提问于 2017-07-20 02:21:30
回答 2查看 515关注 0票数 0

我有以下数组

代码语言:javascript
复制
array:3 [
  0 => array:3 [
    0 => "EN"
    1 => "ENGLISH"
    2 => 1
  ]
  1 => array:3 [
    0 => "JA"
    1 => "JAPANESE"
    2 => 1
  ]
  2 => array:3 [
    0 => "JA"
    1 => "JAPANESE"
    2 => 0
  ]
]

我想删除副本,但只检查键1。当我使用array_unique()时,它不起作用。

我期望的结果是

代码语言:javascript
复制
array:2 [
      0 => array:3 [
        0 => "EN"
        1 => "ENGLISH"
        2 => 1
      ]
      1 => array:3 [
        0 => "JA"
        1 => "JAPANESE"
        2 => 1
      ]
    ]

最后一个数组被移除,因为它具有相同的JAJAPANESE,还有一个具有1的数组。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-20 02:39:52

使用唯一索引作为键,

代码语言:javascript
复制
$result = [];
foreach($array as $v)
{
    $result[$v[0] . $v[1]] = $v;
}
$result = array_values($result);
票数 0
EN

Stack Overflow用户

发布于 2017-07-20 02:33:33

使用集合,您可以通过

代码语言:javascript
复制
// using collection
$collection = collect([ ["EN", "ENGLISH", 1],["JP", "JAPAN", 1], ["JP", "JAPAN", 1] ]);

// then filtering the value
$filtered = $collection->filter(function ($value, $key) {
    return $value[2] == 1;
});

// then unique only by the acronym ( en , jp )
$unique = $filtered->unique(0);

// you may also add the 2nd value to determine it's uniqueness
$unique = $filtered->unique(function ($item) {
    return $item[0].$item[1];
});

// getting all the uniqued values
$unique->values()->all();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45204008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档