You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel中选取多列并过滤对应字段的重复值

问题原因

pluck方法传入两个参数时,会生成「第二个参数为键、第一个参数为值」的关联数组,和你需要的两个独立去重数组的结构不符。

实现方案

方案1:基于已有集合操作

如果已经提前查询了全量用户数据,可以直接对集合做字段提取、去重处理:

$users = Users::all();
return [
    $users->pluck('job')->unique()->values()->toArray(),
    $users->pluck('department')->unique()->values()->toArray()
];

方案2:数据库层面直接查询(更推荐)

数据量较大时不需要拉取全量数据,直接查询两个字段的去重值,性能更高:

return [
    Users::distinct()->pluck('job')->toArray(),
    Users::distinct()->pluck('department')->toArray()
];

两种方案返回的结果都和你预期的[["worker", "manager"], ["departmentA", "departmentB", "departmentC"]]结构完全一致。

内容的提问来源于stack exchange,提问作者sundowatch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:27:00