将值提取为逗号分隔列表

Viv*_*adh 1 php laravel laravel-5

我有一个下面的列表,我想得到一个以逗号分隔值的值列表:

[{"id":49},{"id":61},{"id":5},{"id":58}] 
Run Code Online (Sandbox Code Playgroud)

我试过采摘但它只返回单值.我想要:

49,61,5,58
Run Code Online (Sandbox Code Playgroud)

我可以在很多方面做到这一点,但我想以laravel的方式做到这一点.

码:

   $locations = Location::select('id')->whereIn('id', function($query) use ($id)
            {
                $query->select('location_id')
                    ->from('users_locations')
                    ->whereRaw('user_id ='.$id);
            })->get();
Run Code Online (Sandbox Code Playgroud)

Ale*_*uma 5

使用集合类可以做到这一点,因为它是json你必须首先解码它所以它是一个数组,你可以转换为Illuminate\Support\Collection.

$data = json_decode('[{"id":49},{"id":61},{"id":5},{"id":58}]', true);
$csv_data = collect($data)->pluck('id')->implode(',');
Run Code Online (Sandbox Code Playgroud)

如果您需要值数组而不是字符串,请删除该implode调用.


看到你的代码后,这应该工作得很好.

$csv_data = $locations->pluck('id')->implode(',');
Run Code Online (Sandbox Code Playgroud)