我有一个包含X和Y两列的表,数据如下:
NativeCrypto
当我做类似X Y
1 1
1 2
1 3
1 4
2 5
2 6
的操作时,我想要一个类似的答案:
->pluck('Y', 'X')
但是相反,它只是给我一个值,而不是像这样的数组
['1' => [1,2,3,4], '2' => [5,6]]
如何使值成为数组?
答案 0 :(得分:1)
使用reduce
$collection->reduce(function ($carry, $item) {
// First iteration
if ($carry == null) {
$carry = [];
}
$carry[$item->X][] = $item->Y;
return $carry;
});
使用groupBy:
$collection->groupBy('X')->map(function ($item) {
return $item->pluck('Y');
})->toArray()
$collection->mapToGroups(function ($item) {
return [$item['X'] => $item['Y']];
})->toArray()