【问题标题】:Remove duplicates from multi dimentional array which include string and laravel collection从包含字符串和 laravel 集合的多维数组中删除重复项
【发布时间】:2018-11-21 13:00:30
【问题描述】:

这是一个多维数组,有两列,一列是字符串,一列是 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 user 模型。)是否有任何内置的 PHP 函数?

【问题讨论】:

  • @ThisGuyHasTwoThumbs 对我不起作用..

标签: php laravel


【解决方案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'];
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2013-05-08
    • 2015-04-23
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多