【PHP】多次元配列 カラム同士を計算


<?php

$results = [
    ['name' => '田中',  'japanese' => 83, 'math' => 57, 'science' => 43,  'social' => 72, 'english' => 78],
    ['name' => '渡部',  'japanese' => 62, 'math' => 88, 'science' => 70,  'social' => 66, 'english' => 38],
    ['name' => '品川',  'japanese' => 23, 'math' => 33, 'science' => 53,  'social' => 17, 'english' => 07],
    ['name' => '滝谷',  'japanese' => 93, 'math' => 89, 'science' => 79,  'social' => 96, 'english' => 91],
    ['name' => '川原田','japanese' => 55, 'math' => 56, 'science' => 60,  'social' => 54, 'english' => 66],
    ['name' => '一色',  'japanese' => 27, 'math' => 47, 'science' => 100, 'social' => 42, 'english' => 38],
];

$cnt = 0;
// $output_peaple = array_map(fn($n) => $n + ['total' => array_sum($n)], $results);

function cube($n){
    return ['name' => $n['name'].'さん ','total' =>  array_sum($n)];
}

$output_peaple = array_map('cube', $results);

var_dump($output_peaple);

結果

array(6) {
  [0]=>
  array(2) {
    ["name"]=>
    string(13) "田中さん "
    ["total"]=>
    int(333)
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(13) "渡部さん "
    ["total"]=>
    int(324)
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(13) "品川さん "
    ["total"]=>
    int(133)
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(13) "滝谷さん "
    ["total"]=>
    int(448)
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(16) "川原田さん "
    ["total"]=>
    int(291)
  }
  [5]=>
  array(2) {
    ["name"]=>
    string(13) "一色さん "
    ["total"]=>
    int(254)
  }
}