通过Map函数进行Process Collection

时间:2017-01-26 01:03:08

标签: laravel collections

我从Laravel的查询中获取了一个集合。

实际上,我正在处理这样的集合:

array:2 [▼
1158 => "Junior por Equipo"
1160 => "Varonil por Equipo"
]

输出:

MyModel::get()
        ->get()
        ->map(function ($item, $value){
            return [ $item->id => $item->category->name ];
        })->toArray();

现在,我想在muy集合上使用map()函数,因为我更喜欢它:

    array:2 [▼
  0 => array:1 [▼
    1158 => "Junior por Equipo"
  ]
  1 => array:1 [▼
    1160 => "Varonil por Equipo"
  ]
]

但是现在,我得到了:

double large_trays = attendees / 7;

int large_trays_rounded = (int)large_trays;

int medium_trays = large_trays_rounded % 3;

int small_trays = medium_trays % 1;

我应该如何像第一种情况一样输出它?

2 个答案:

答案 0 :(得分:0)

您不必映射该集合,只需使用MyModel::lists('name', 'id' ) ;

即可

答案 1 :(得分:0)

有一种收集方法。 pluck()和雄辩的lists()

不喜欢使用pluck来获取某些列。先前使用了list()。

请参阅https://laravel.com/docs/5.3/collections#method-pluck

正如文件所说

pluck方法仅检索给定键/键的所有值

所以它会是这样的。

Model::get()->pluck('name','id);

如果你想得到一个数组而不是一个集合,你可以在结果上使用toArray()。