【发布时间】:2021-06-11 05:11:15
【问题描述】:
我有一套数据字典$dataDictCollection
"column_a" => "Column A",
"column_b" => "Column B",
"column_c" => "Column C",
"column_d" => "Column D",
"column_e" => "Column E",
我还有一组结果$resultCollection
[{
"column_a" => "value 100",
"column_b" => "value 200",
"column_c" => "value 300",
"column_d" => "value 400",
"column_e" => "value 500",
},{
"column_a" => "value 110",
"column_b" => "value 220",
"column_c" => "value 330",
"column_d" => "value 440",
"column_e" => "value 550",
}]
在结果中,我希望将数据字典的值作为结果的键。例如:
"Column A" => "value 100",
"Column B" => "value 200",
"Column C" => "value 300",
"Column D" => "value 400",
"Column E" => "value 500",
请注意,我的列数很多,我无法像下面那样指定键名。
return $data['Column A'] = 'value 100';
我尝试了mapWithKeys、keyBy,但我不知道如何返回我想要的结果。
我试过了
return collect($resultCollection)->map(function ($result) use ($dataDictCollection) {
return collect($dataDictCollection)->map(function ($dataDic) use ($result) {
$name[$dataDic] = $result[$dataDic];
return $name;
});
});
但它返回这个:(
"column_a": {
"Column A": "value 100"
},
"column_b": {
"Column B": "value 200"
},
又一次尝试
return collect($resultCollection)->map(function ($result) use ($dataDictCollection) {
return collect($result)->combine($dataDictCollection);
})->values();
但它会像这样返回,反转并且不返回完整的数据字典。
[{
"value 100" => "Column A",
"value 200" => "Column B",
"value 300" => "Column C",
},{
"value 110" => "Column A",
"value 220" => "Column B",
"value 330" => "Column C",
}]
【问题讨论】:
-
你试过
$name= $deal[$dataDic];这个 -
@A.ANoman 我得到了
Illegal offset type
标签: laravel laravel-collection