从多维数组中删除重复项,包括字符串和laravel集合

时间:2018-06-12 07:49:45

标签: php laravel

这是多维数组,其中两列是字符串,另一列是laravel集合模型。

array:2 [▼
  0 => array:2 [▼
    "email" => "myfirstemail@gmail.com"
    "user" => User {#2508 ▶}
  ]
  1 => array:2 [▼
    "email" => "myfirstemail@gmail.com"
    "user" => User {#2547 ▶} //laravel collection
  ]
]

我使用php multi-dimensional array remove duplicate并且它不会为此工作。

我不想通过电子邮件删除重复的列(无需查看laravel 用户模型。)是否有内置的PHP函数?

1 个答案:

答案 0 :(得分:1)

您可以使用Laravel的Collection::unique方法:

$unique = collect($yourArray)->unique('email');

通过将email传入方法,您告诉Laravel查看数据集中的特定字段,而不是整个数据。然后,您可以使用toArray将其转换回数组。

$unique = collect($yourArray)->unique('email')->toArray();

您还可以将闭包传递给unique方法,以允许您定义要为每个对象进行比较的值,以确定唯一性:

$unique = collect($yourArray)->unique(function ($item) {
    return $item['email'];
});