如何从多维数组中删除重复的子数组?

时间:2016-05-31 19:07:54

标签: php multidimensional-array array-unique

我有一个数组:

array:3 [▼
  0 => array:1 [▼
    "name" => "test#4"
  ]
  1 => array:1 [▼
    "name" => "C"
  ]
  2 => array:1 [▼
    "name" => "C"
  ]
]

我想只获得唯一的值:

array:2 [▼
  0 => array:1 [▼
    "name" => "test#4"
  ]
  1 => array:1 [▼
    "name" => "C"
  ]
]

我应该使用什么PHP功能?

我使用array_unique()

$group_array = [];
foreach ($private_group_devices as $i=>$group) {
    $group_array[$i]['name'] = $group['group_name'];
}
// dd($group_array);
dd(array_unique($group_array));

但我一直在接受:

  

数组到字符串转换

1 个答案:

答案 0 :(得分:1)

您可以将SORT_REGULAR标记传递到array_unique来电,如下所示:

dd(array_unique($group_array, SORT_REGULAR));

默认情况下,array_unique会尝试将每个项目转换为字符串(这对数组不起作用)。使用SORT_REGULAR告诉array_unique比较项目而不转换其类型。