Laravel获取数字?
问题描述:
如何在Laravel中获取数组数组?Laravel获取数字?
下面是我得到了什么:
$companies = Company::select(['id','name'])->get()->toArray();
这让我回:
array:21 [
0 => array:2 [
"id" => 21
"name" => "Cool Company"
]
1 => array:2 [
"id" => 4
"name" => "Bacon Co"
]
....
但我想:
array:21 [
0 => array:2 [
21,
"Cool Company"
]
1 => array:2 [
4,
"Bacon Co"
]
....
答
如果你需要这个精确的输出你可以做
$companies = App\Company::pluck('name', 'id')
->map(function ($name, $id) {
return [$id, $name];
})
->values()
->toArray();
输出:
=> [ [ 4, "Bacon Co", ], [ 21, "Cool Company", ], ]
不知道你正在使用它,但后来也许做的pluck()
只是输出就足够了
$companies = App\Company::pluck('name', 'id')->toArray();
=> [ 4 => "Bacon Co", 21 => "Cool Company", ]
+0
不,我不希望它被索引。我序列化为JSON,我需要一个数组,而不是一个对象。我猜你会第一个解决方案。谢谢 – mpen
一个建议: $ company = Company :: select(['id','name']) - > get() - > toArray() - > map(function($ ite m){ return array_flatten($ item); }); – Naco
@ user3681740不要以为你可以在映射数组之后映射'',我想我会'array_values'来代替,但无论如何,我肯定不应该那样做? – mpen
当然,对不起,你可以用array_map来代替,或者在map()后面加上toArray()。 – Naco