我正在嘗試使用 Laravel 選擇多個列并避免這些列中的重復值。這是我的資料:
id, name, job, department
[1, "Jane Doe", "worker", "departmentA"]
[2, "Adam Smith", "manager", "departmentB"]
[3, "Machiavelli", "worker", "departmentA"]
[4, "Rousseau", "worker", "departmentC"]
我想在沒有重復資料的情況下獲得作業和部門。所以我想要這個結果:
[["worker", "manager"], ["departmentA", "departmentB", "departmentC"]]
我正在嘗試使用這樣的模型來獲取它:
$users = Users::all();
$user_fields = $users->pluck("job", "department")->toArray();
return $user_fields;
但它不起作用。我該怎么做?
uj5u.com熱心網友回復:
我不認為你可以用一個功能來做到這一點。
但是有兩個采摘很簡單:
$user_fields =
array_merge(
$users->pluck("job")->unique()->toArray(),
$users->pluck("department")->unique()->toArray()
);
uj5u.com熱心網友回復:
當您提取 2 個值時,您正在創建一個關聯陣列。
您可以使用array_keys和將它們拆分為單獨的陣列array_values。我會array_unique用來洗掉重復項。
$users = Users::all();
$jobs_despartments = $users->pluck("job", "department")->all();
$jobs = array_unique(array_keys($jobs_despartments));
// ["worker", "manager"]
$departments = array_unique(array_values($jobs_despartments));
// ["departmentA", "departmentB", "departmentC"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336963.html
