This question already has an answer here:
Suppose I have following array:
Array
(
[2016] => Array
(
[C1] => Array
(
[0] => Array
(
[id] => 1
[project_id] => 1
[company_type] => C1
[capacity_share] => 12
[project_year] => 2016
)
[1] => Array
(
[id] => 4
[project_id] => 2
[company_type] => C1
[capacity_share] => 16
[project_year] => 2016
)
)
[C2] => Array
(
[0] => Array
(
[id] => 2
[project_id] => 1
[company_type] => C2
[capacity_share] => 14
[project_year] => 2016
)
[1] => Array
(
[id] => 3
[project_id] => 2
[company_type] => C2
[capacity_share] => 15
[project_year] => 2016
)
)
)
[2014] => Array
(
[C1] => Array
(
[0] => Array
(
[id] => 5
[project_id] => 3
[company_type] => C1
[capacity_share] => 20
[project_year] => 2014
)
[1] => Array
(
[id] => 8
[project_id] => 4
[company_type] => C1
[capacity_share] => 10
[project_year] => 2014
)
)
[C2] => Array
(
[0] => Array
(
[id] => 6
[project_id] => 3
[company_type] => C2
[capacity_share] => 22
[project_year] => 2014
)
[1] => Array
(
[id] => 7
[project_id] => 4
[company_type] => C2
[capacity_share] => 11
[project_year] => 2014
)
)
)
)
Is there any way so that I can create a new array like this:
Array
(
[0] => Array(
//project_year
'project_year' => 2016,
//sum of 'capacity_share' where company_type = C1 and project_year = 2016
'C1_capacity_sum' => 28, //[12+16]
//sum of 'capacity_share' where company_type = C2 and project_year = 2016
'C2_capacity_sum' => 29 //[14+15]
)
[1] => Array(
//project_year
'project_year' => 2014,
//sum of 'capacity_share' where company_type = C1 and project_year = 2014
'C1_capacity_sum' => 30, //[20+10]
sum of 'capacity_share' where company_type = C2 and project_year = 2014
'C2_capacity_sum' => 33 //[22+11]
)
);
I am very new to PHP any can't find any built-in method for this. However I have tried my hands on array_walk and array_map.
I will welcome any hint or help regarding this.
Thanks.
Aucun commentaire:
Enregistrer un commentaire