💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## keyBy方法 用指定某个键的值作为新集合的键 如果新的键值有重复,则去后面的元素,前面的元素舍去 以给定的键作为集合的键。如果多个项目具有相同的键,则只有最后一个项目会显示在新集合中。 ### 区别 与`mapWithKeys`和`mapToGroups`类似, `keyBy`只能指定操作的`key`返回的是多维数组 `mapWithKeys`不仅能指定操作的`key`,还能操作返回的数据的值,可以返回的是多维数组 `mapToGroups `不仅能指定操作的`key`,还能操作返回的数据的值,但有重复的会保留,返回的是多维数组, ~~~ $collection = collect([ ['product_id' => 'prod-100', 'name' => 'desk'], ['product_id' => 'prod-200', 'name' => 'chair'], ]); $keyed = $collection->keyBy('product_id'); $keyed->all(); /* [ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ] */ ~~~ 也可以传入一个回调方法,回调返回的值会作为该集合的键 ~~~ $keyed = $collection->keyBy(function ($item) { return strtoupper($item['product_id']); }); $keyed->all(); /* [ 'PROD-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'PROD-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ] */ ~~~