我有两个结构如下的数组
array
'main' => array
'firstYearStudents' => array
0 => '10'
1 => '12'
'secondYearStudents' => array
0 => '8'
1 => '9'
'total' => array
'totalFirstYear' => '22'
'totalSecondYear' => '17'
但是我想买下面这件
array
'main' => array
'firstYearStudents' => array
0 => '10'
1 => '12'
2 => '22'
'secondYearStudents' => array
0 => '8'
1 => '9'
2 => '17'
但我不明白如何将“total”数组的值附加到“main”数组的值上。 你能告诉我该往哪个方向走吗?
您可以只映射主数组并推入其元素的和:
$array['main'] = array_map(static function($counts) {
return array_merge($counts, [array_sum($counts)]);
}, $array['main']);
main
键的值将是您实际需要的值:
array(2) {
["firstYearStudents"]=>
array(3) {
[0] => int(10)
[1] => int(12)
[2] => int(22)
}
["secondYearStudents"]=>
array(3) {
[0] => int(8)
[1] => int(9)
[2] => int(17)
}
}
如果您只需要移动这两个属性,这应该是一个简单的解决方案:
$data = [
'main' => [
'firstYearStudents' => [
'10',
'12'
],
'secondYearStudents' => [
'8',
'9'
]
],
'total' => [
'totalFirstYear' => '22',
'totalSecondYear' => '17'
]
];
$data['main']['firstYearStudents'][] = $data['total']['totalFirstYear'];
$data['main']['secondYearStudents'][] = $data['total']['totalSecondYear'];
如果需要的话,您应该能够扩展它以覆盖更多的年份,或者最终编写一个循环来管理您所需要的所有年份。