首页 > 解决方案 > PHP:如何通过重复值展平多维数组

问题描述

我有以下数组:

array(3) {
  [0]=>
  array(2) {
    ["label"]=> string(10) "Chardonnay"
    ["value"]=> int(245)
  }
  [1]=>
  array(2) {
    ["label"]=> string(10) "Chardonnay"
    ["value"]=> int(33)
  }
  [2]=>
  array(2) {
    ["label"]=> string(10) "Chardonnay"
    ["value"]=>int(175)
  }
  [3]=>
  array(2) {
    ["label"]=> string(10) "Stein"
    ["value"]=>int(195)
  }
}

我将如何去“过滤”这个数组,使它看起来像这样:

array(2) {
  [0]=>
  array(2) {
    ["label"]=> string(5) "Chardonnay"
    ["value"]=> int(245)
  }
  [1]=>
  array(2) {
    ["label"]=> string(10) "Stein"
    ["value"]=>int(195)
  }
}

所以本质上,我想按值删除数组元素,其中值不是唯一的。

我什至不知道从哪里开始。请协助?

标签: phparrays

解决方案


由于键必须是唯一的,因此您可以在标签上建立索引,并且每个键只有一个:

$result = array_column($array, null, 'label');

如果您只想要具有唯一值的单个维度,请提取所有标签,然后使其唯一:

$result = array_unique(array_column($array, 'label'));

如果此数组来自数据库查询,那么您将在查询中执行此操作。


推荐阅读