2016-05-31 55 views
0

我有一个数组:如何从我的多维数组中删除重复的子数组?

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

“foreach”或“array_column” –

回答

1

您可以通过SORT_REGULAR标志到您array_unique通话,具体如下:

dd(array_unique($group_array, SORT_REGULAR)); 

默认情况下,array_unique会尝试将每个项目转换为一个字符串(这对于数组来说并不适用)。使用SORT_REGULAR告诉array_unique比较项目而不转换它们的类型。

+0

加1表示短于链接中的那个。 ; p – ihue

+0

任何一种解决方案都可以正常工作,而且实际上我的答案与[第二高的答案](http://stackoverflow.com/a/18373723/899126)相同!这就是说,有一个警告,以这种方式使用'array_unique';它[不打算在多维数组上工作](http://php.net/manual/en/function.array-unique.php#refsect1-function.array-unique-notes)。它可以工作,但根据情况可能会有一些毛羽。 –