如何从多维数组中仅获取数组值

时间:2015-12-07 06:26:47

标签: php laravel

我正在 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']等值。

我知道这可能很简单。提出建议。

3 个答案:

答案 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');