Not sure if this is possible but im trying to run array_unique over a collection of items i have, to remove duplicates. Although i cannot get it working.

my controller logic:

    // init models
    $jobs = Job::search();
    $countries = $jobs->get()->map(function( $job ) {

        return $job->country;
    });
    $countries = array_unique( $countries->toArray() );

虽然这会出现"数组到字符串转换"错误

推荐答案

在select子句中使用distinct or group by可以在DB结果中使用唯一值.但是,如果需要在对象数组上具有唯一值,可以执行以下操作:

$uniques = array();
foreach ($countries as $c) {
    $uniques[$c->code] = $c; // Get unique country by code.
}

dd($uniques);

Laravel相关问答推荐

提交表格后如何在Livewire 3中调度模式窗口?

当使用Craftable PRO时,Wysiwig是什么时候生成的?

如何获得每种类型的总和

Blade引擎:打印三重花括号

Laravel 5 - ErrorException 无法打开流:权限被拒绝

PHP 中的 Http 响应代码枚举

在 Laravel Blade 中转义 vue.js 数据绑定语法?

带有时间戳的 Laravel 5.1 eloquent::attach() 方法

Laravel 5.1 重命名项目

Laravel 存储文件的公共 url

Laravel 规则和正则表达式 (OR) 运算符的问题

如何运行artisan命令计划:在托管服务器上运行? (Laravel )

Laravel:验证 json 对象

Laravel League/flysystem 使用 AWS S3 获取文件 URL

如何在 Laravel 或 Redis 中取消排队的作业(job)

Composer RuntimeException - 无法加载软件包 mews/purifier

在 laravel 的自定义路径中创建模型

Laravel 不活动时间设置

如何在 Laravel 测试中禁用选定的中间件

如何在 Laravel 5 中验证 RESTful API?