如何从口才采摘方法获取数组值

时间:2019-12-20 04:32:40

标签: laravel eloquent

我有一个包含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]]

如何使值成为数组?

1 个答案:

答案 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()

使用mapToGroups

$collection->mapToGroups(function ($item) {
    return [$item['X'] => $item['Y']];
})->toArray()