Php 将值提取为逗号分隔的列表
我在下面有一个列表,我想得到一个以逗号分隔的值列表:Php 将值提取为逗号分隔的列表,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在下面有一个列表,我想得到一个以逗号分隔的值列表: [{"id":49},{"id":61},{"id":5},{"id":58}] 我尝试了Purch,但它只返回单个值。我想: 49,61,5,58 我可以用很多方法来做,但我想用拉威尔的方法来做 代码: 使用collection类可以做到这一点,因为它是json,所以必须首先对它进行解码,使其成为一个数组,可以将其转换为illumb\Support\collection $data = json_decode('[{"id":49},
[{"id":49},{"id":61},{"id":5},{"id":58}]
我尝试了Purch,但它只返回单个值。我想:
49,61,5,58
我可以用很多方法来做,但我想用拉威尔的方法来做
代码:
使用collection类可以做到这一点,因为它是json,所以必须首先对它进行解码,使其成为一个数组,可以将其转换为
illumb\Support\collection
$data = json_decode('[{"id":49},{"id":61},{"id":5},{"id":58}]', true);
$csv_data = collect($data)->pluck('id')->implode(',');
如果需要值数组而不是字符串,请删除内爆调用
在看到您的代码后,这应该可以正常工作
$csv_data = $locations->pluck('id')->implode(',');
1st:使用json\u解码
将json字符串解码到数组中
2nd:使用array\u列从array
3rd:使用内爆
将数组
分解为字符串
<?php
$array ='[{"id":49},{"id":61},{"id":5},{"id":58}]';
echo implode(',',array_column(json_decode($array,true),'id'));
?>
我可以用很多方法来做,但我想用拉威尔的方法来做这就是为什么我删除了我的答案像这样试试
$t='[{"id":49},{"id":61},{"id":5},{"id":58}]' ;
$ARRAY=json_decode($t,true);
$ARRAY=array_column($ARRAY,'id')
$VALUE=implode(',',$ARRAY);
它的输出为
使用simplejson\u decode()、array\u column()和infrade(),因为它是一个标准集合,所以您不需要使用json\u decode()
。收集pluck()
方法将起作用:
$collection->pluck('id');
您也可以使用Eloquent的pluck()
方法,而不是使用select()
和get()
,您可以试试这个
$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);
请显示用于获取此集合的代码。如果这是一个标准的集合,Pulk肯定会起作用。如果您的问题得到解决,请通过接受我的回答来结束您的问题:)请在此语句数组_列中添加分号($array,'id')@我们需要等待几分钟才能接受答案。我在等它。
$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);