仅基于第一个值的唯一数组?

Panthro

我的数组:

$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']];

我需要删除任何重复的第一个值,例如。上面有两个abc值,因为第二个值不同,所以array_unique不起作用:

 $arr = array_unique($arr, SORT_REGULAR);

有没有一种方法只能基于第一个值获得唯一值。我无法更改上述结构。

所需的输出是:

$arr = [['abc', 'a'],['xyz', 'f']];
ug田玻色

array_combine()array_column()可以提供帮助。但是它将改变嵌套数组的顺序,并且仅保留重复的最后一个值。

$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']];
$temp = array_combine(array_column($arr, 0), $arr);

array_column不适用于旧版本。(在(PHP 5> = 5.5.0,PHP 7)中提供

输出量

array(2) {
  ["abc"]=>
  array(2) {
    [0]=>
    string(3) "abc"
    [1]=>
    string(1) "x"
  }
  ["xyz"]=>
  array(2) {
    [0]=>
    string(3) "xyz"
    [1]=>
    string(1) "f"
  }
}

array_column将返回一个数组,其中包含来自带有0索引的子数组的所有值

array_combine会将子数组分配给所返回的值array_column

因此,由于相同的键不能存在两次,因此它将使用相同的键(for 0)用较新的值覆盖以前的值。因此,新数组将仅保留最新(最后)值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章