DB :: select () - как получить массив массивов вместо массива коллекций - PullRequest
0 голосов
/ 19 марта 2019

У меня необработанный запрос: $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 голосов
/ 19 марта 2019

Используйте метод toArray () для коллекций. Ты можешь позвонить $data = DB::select(...); $data = collect($data)->toArray(); https://laravel.com/docs/5.8/collections#method-toarray

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...