laravel-5.7 - DB::select() - 如何获取数组数组而不是集合数组
问题描述
我有原始查询:$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);
但这似乎不是大型数据集的最佳方式。
解决方案
对集合使用 toArray() 方法。您可以致电
$data = DB::select(...);
$data = collect($data)->toArray();
https://laravel.com/docs/5.8/collections#method-toarray
推荐阅读
- javascript - AngularJS ui-router ui-sref 导致“Uncaught TypeError: Cannot read property '0' of undefined”错误
- acumatica - InventoryItem BasePrice 导致“转换无效”
- c# - 在 Azure 聊天机器人框架中使用聊天机器人响应作为触发词
- install4j - 如何在 install4j 生成的 RPM 中包含 /etc/sysconfig 文件
- assembly - ca65 汇编器和 ld65 链接器
- amazon-sagemaker - 在 AWS SageMaker 上构建自定义 ML 模型
- python - 为什么pycharm在调试TensorFlow程序时占用内存越来越大?
- reactjs - 反应!使 Span 标签可点击
- java - Jackson ObjectMapper jsonIgnore 问题
- android - 如何使用 Management API(测试版)获取设备列表?