DB :: select()-如何获取数组数组而不是集合数组

时间:2019-03-19 10:08:26

标签: laravel-5.7

我有原始查询:$data = DB::select('...');

结果,$data是一个集合数组:

array:999 [
  0 => {#331
    +"v": 1
  }
  1 => {#328
    +"v": 2
  }
  2 => {#332
    +"v": 3
  }
  ...
]

我想获取数组数组:

array:999 [
  0 => array:1 [
    "v" => 2
  ]
  1 => array:1 [
    "v" => 3
  ]
  ...
]

我可以遍历$data并强制转换为array

$arr = [];
foreach ($data as $i) {
    $arr[] = (array)$i;
}

//other way

$arr = array_map(function ($i) {
    return (array)$i;
}, $data);

但是对于大型数据集来说,这似乎不是最佳方法。

1 个答案:

答案 0 :(得分:0)

使用toArray()方法进行集合。 你可以打电话 $data = DB::select(...); $data = collect($data)->toArray(); https://laravel.com/docs/5.8/collections#method-toarray