我正在 laravel 中进行项目。我从user1变量中的数据库中获取值。
foreach($users1 as $us){
$uss[$i] = $us->city_id;
$users2[$i] = DB::table('provider_city')->select('provider_id')->where('city_id','=', $uss[$i])->get();
$i++;
}
return $users2;
当我返回user2时,我收到了 [[{“provider_id”:“14785”}],[{“provider_id”:“125478”}]]这样的值。
我只想要['14785','125478']等值。
我知道这可能很简单。提出建议。
答案 0 :(得分:0)
这可以通过json_decode
来实现,就像这样
$json= '[
{
"provider_id": "14785"
},
{
"provider_id": "125478"
}
]';
$jsonDecoded = json_decode($json);
foreach($jsonDecoded as $item)
{
//Do something with it, e.g
echo $item->provider_id;
}
编辑:发现这是一个多维数组
This question这里应该指出正确的方向。
答案 1 :(得分:0)
实际上有一种雄辩的方法 - lists()
:
$users2[$i] = DB::table('provider_city')
->where('city_id','=', $uss[$i])
->lists('provider_id')
->all();
这将为您提供一个仅包含提供者ID的数组。
最后是否需要all()
来电,主要取决于您使用的Laravel版本。
答案 2 :(得分:0)
也许像
return DB::table('provider_city')
->whereIn('city_id', array_pluck($users1, 'city_id')
->lists('provider_id');