laravel - 如何将数据数组映射到对象数组?
问题描述
我有如下数据:
langauges: [
{
"langauge_id": 2, "grade_id": 3
},
{
"langauge_id": 5, "grade_id": 7
}
];
我想将数据转换为如下所示:
[2 => ['grade_id' => 3], 5 => ['grade_id' => 7]]
请帮帮我!谢谢您的帮助!
解决方案
您可以利用 Collection 的mapWithKeys
方法。
你应该有一个这样的集合:
$collection = collect([
["language_id" => 2, "grade_id" => 3],
["language_id" => 5, "grade_id" => 7]
]);
然后,您可以操作此数据,将其映射到您想要的任何内容:
$mappedCollection = $collection->mapWithKeys(function ($language) {
return [$language["language_id"] => ["grade_id" => $language["grade_id"]]];
});
如果你想要一个数组,记得做$mappedCollection->toArray();
.
推荐阅读
- javascript - How to pass a constant to a method as a parameter with vuejs
- android - 反应本机地铁服务器
- jquery - 表单提交后执行
- google-apps-script - Photo sent by telegram bot from Google Drive is cropped
- javascript - Why is css not being read on server.js?
- maven - 查看来自先前版本而不是当前版本的范围报告
- php - 从 WP Job Manager 列表中删除永久链接公园
- angular - TypeError:使用翻译管道时角度“d未定义”
- c# - 检查消息,如果需要,在 rabbitmq 消费者中重新排队
- c# - 如何通过 viewmodel 中的 mvvm 通过 selecteditem 将 listview 中的数据显示到 xamarin 中的条目?