首页 > 解决方案 > 如何将数据数组映射到对象数组?

问题描述

我有如下数据:

langauges: [
   {
     "langauge_id": 2, "grade_id": 3
   },
   {
     "langauge_id": 5, "grade_id": 7
   }
];

我想将数据转换为如下所示:

[2 => ['grade_id' => 3], 5 => ['grade_id' => 7]]

请帮帮我!谢谢您的帮助!

标签: laravel

解决方案


您可以利用 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();.


推荐阅读