Laravel中如何使用Collection将索引数组转为关联集合
使用Laravel Collection转换索引数组为关联集合
当然可以!Laravel的Collection类提供了非常优雅的方式来完成这个转换,完全不需要手动写循环逻辑。
你只需要利用collect()把原数组转为Collection实例,再通过map()方法遍历每个子数组,将其映射为带有指定键名的关联数组即可:
// 你的原始二维索引数组 $originalArray = [ ["Delhi", 22, "The capital of India"], ["Varanasi", 23, "Oldest Living City"], ["Moscow", 24, "Capital of Russia"], ["Konya", 25, "The city of Rumi"], ["Salzburg", 26, "The city of Mozart"] ]; // 转换为目标关联集合 $transformedCollection = collect($originalArray)->map(function ($item) { return [ 'city' => $item[0], 'id' => $item[1], 'description' => $item[2] ]; }); // 如果需要将集合转为普通PHP数组,调用toArray()即可 $transformedArray = $transformedCollection->toArray();
如果你的项目使用PHP 7.4及以上版本,还可以用更简洁的箭头函数写法:
$transformedCollection = collect($originalArray)->map(fn($item) => [ 'city' => $item[0], 'id' => $item[1], 'description' => $item[2] ]);
补充说明
map()方法会遍历集合中的每一个元素,返回一个包含转换后元素的新Collection,不会修改原数组/集合。- 后续如果需要对转换后的结果做进一步操作(比如过滤特定城市、排序),可以直接链式调用Collection的其他方法,比如
filter()、sortBy()等,非常灵活。
内容的提问来源于stack exchange,提问作者Nishant Sah
相关产品推荐
相关产品推荐

