2017-08-05 2 views
0

Laravelで数値配列の配列を取得するにはどうすればよいですか?ここで Laravelは数値をフェッチしますか?


は、私が持っているものです:

array:21 [ 
    0 => array:2 [ 
     "id" => 21 
     "name" => "Cool Company" 
    ] 
    1 => array:2 [ 
     "id" => 4 
     "name" => "Bacon Co" 
    ] 
    .... 

しかし、私が欲しい:

$companies = Company::select(['id','name'])->get()->toArray(); 

これは戻って私を与える

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){ 戻り値array_flatten($ item); }); – Naco

+1

@ user3681740配列の後に ' - > map'することはできないと思っています。代わりに' array_values'が必要だと思いますが、関係なく、必ずしもそうする必要はありませんか? – mpen

+0

確かに、代わりにarray_mapを使用するか、map()の後にtoArray()を置くことができます。 – Naco

答えて

1

あなたはこの正確な出力が必要な場合できます

$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

関連する問題