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" 
    ] 
    .... 
+0

一个建议: $ company = Company :: select(['id','name']) - > get() - > toArray() - > map(function($ ite m){ return array_flatten($ item); }); – Naco

+1

@ user3681740不要以为你可以在映射数组之后映射'',我想我会'array_values'来代替,但无论如何,我肯定不应该那样做? – mpen

+0

当然,对不起,你可以用array_map来代替,或者在map()后面加上toArray()。 – Naco

如果你需要这个精确的输出你可以做

$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