get sum of php multidiamentional array

Solution 1:

Simply do this:

$category->sale_data_sum = 0; // initiate key
foreach ($category_sale_data as $key => $value) {
    list($sale_key, $sale_value) = explode('*', $value);
    $category->sale_data[$sale_key][] = $sale_value;
    $category->sale_data_sum += $sale_value; // add each sale value
}

Solution 2:

$category = [ 'category_name' => '32459*1500*lab*1,32460*400*lab*1,32461*600*lab*1' ];

// category_name
$result['category_name'] = $category['category_name'];

// sale_data
$splitted = preg_split('/[*,]/', $category['category_name']);
for($i = 0; $i < count($splitted); $i += 4) {
  $result['sale_data'][$splitted[$i]] = $splitted[$i + 1];
}

// sale_data_sum
$result['sale_data_sum'] = array_sum($result['sale_data']);

print_r($result);