簡體   English   中英

提取值作為逗號分隔列表

[英]Extract value as comma separated list

我在下面有一個列表,我想以逗號分隔值的形式獲取值列表:

[{"id":49},{"id":61},{"id":5},{"id":58}] 

我嘗試采摘,但它只返回單個值。 我想要:

49,61,5,58

我可以通過很多方式做到這一點,但我想以laravel的方式做到這一點。

碼:

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

使用collection類,您可以執行此操作,因為它是json,因此必須首先對其進行解碼,因此它是一個數組,您可以將其轉換為Illuminate\\Support\\Collection

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

如果要使用值數組而不是字符串,請刪除implode調用。


看到您的代碼后,這應該可以正常工作。

$csv_data = $locations->pluck('id')->implode(',');

這樣嘗試

$t='[{"id":49},{"id":61},{"id":5},{"id":58}]' ;
$ARRAY=json_decode($t,true);
$ARRAY=array_column($ARRAY,'id')
$VALUE=implode(',',$ARRAY);

作為輸出

在此處輸入圖片說明

使用簡單的json_decode()array_column()implode()

由於它是一個標准集合,因此您無需使用json_decode() 集合pluck()方法將起作用:

$collection->pluck('id');

您也可以使用Eloquent的pluck()方法,而不是使用select()get()

1:使用json_decode將json字符串解碼為數組

第二個:使用array_column從array獲取specific column

第三:使用implodearray分解為string

<?php

$array ='[{"id":49},{"id":61},{"id":5},{"id":58}]';

echo implode(',',array_column(json_decode($array,true),'id'));

?>

我可以通過很多方式做到這一點,但我想以laravel的方式做到這一點。 這就是為什么我刪除我的答案而!

你可以試試這個

$data_arr = json_decode('[{"id":49},{"id":61},{"id":5},{"id":58}]', true);
$resultarr = array();
foreach($data_arr as $data){
    $resultarr[] = $data['id'];
}
echo implode(',', $resultarr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM