Laravel中如何将查询的两列数据转为键值对数组?
解决方案:用Laravel集合的
pluck()方法直接生成键值对数组 你完全可以利用Laravel Eloquent提供的pluck()方法一步到位实现这个需求,它专门用来从集合中提取指定字段并生成键值对结构,非常贴合你的场景。
修改你的查询代码如下:
// 直接生成键为id、值为location_url的集合,如需普通数组就加toArray() $a = Customer::whereIn('created_by', $adminot) ->pluck('location_url', 'id') ->toArray();
细节说明:
pluck()的第一个参数是要作为值的字段(这里是location_url),第二个参数是要作为键的字段(这里是id)- 如果你不需要普通数组,而是保留Laravel集合对象,可以去掉
->toArray(),集合本身也支持类似数组的访问方式 - 原来的
select('id', 'location_url')其实可以省略,因为pluck()会自动只查询这两个字段,不过保留也不会有问题
用你给出的示例数据测试的话,这段代码生成的$a就是:
[ 10 => 123.456, 22 => 654.325, 31 => 632.983 // 注:你示例里写的是逗号,应该是小数点格式吧?pluck会直接保留数据库返回的原数据格式 ]
这样就完美实现了你想要的单个数组结构啦!
内容的提问来源于stack exchange,提问作者Hamza Qureshi
相关产品推荐
相关产品推荐

