$test = collect([
[
'key1' => ['value1' => 5, 'value2' => 3, 'value3' => 0],
'key2' => ['value1' => 1, 'value2' => 6, 'value3' => 2],
'key3' => ['value1' => 0, 'value2' => 0, 'value3' => 1],
],
[
'key1' => ['value1' => 3, 'value2' => 1, 'value3' => 7],
'key2' => ['value1' => 1, 'value2' => 3, 'value3' => 2],
'key3' => ['value1' => 1, 'value2' => 6, 'value3' => 1],
],
[
'key1' => ['value1' => 2, 'value2' => 3, 'value3' => 9],
'key2' => ['value1' => 3, 'value2' => 8, 'value3' => 3],
'key3' => ['value1' => 1, 'value2' => 0, 'value3' => 6],
]
]);
$mappedCollection = collect($test->first())->keys()->mapWithKeys(function($item,$key) use($test){
return[
$item => $test->map(function ($mapItem, $mapKey) use($item) {
return $mapItem[$item];
})
];
})->mapWithKeys(function($item,$key){
$eachLine = collect($item->first())->keys()->mapWithKeys(function($mapItem) use($item){
return[ $mapItem => $item->sum($mapItem) ];
});
return [$key => $eachLine];
})->all();
dd($mappedCollection);
Comments