Php 如何对数组中的字符串值求和

Php 如何对数组中的字符串值求和,php,arrays,Php,Arrays,这是我的数组 Array ( [0] => Array ( [Asan_Name_Val] => 447 [Actual_Ratio] => 15/00/15,04/05/05 ) [1] => Array ( [Asan_Name_Val] => 447 [Actual_Ratio] => 10/

这是我的数组

Array
(
    [0] => Array
        (

            [Asan_Name_Val] => 447
            [Actual_Ratio] => 15/00/15,04/05/05
        )

    [1] => Array
        (
            [Asan_Name_Val] => 447
            [Actual_Ratio] => 10/05/11,00/06/05
        )
)
实际比率值应与其值相加,如15+10=15,00+05=05,15+11=26。。。。。 所以我想要的是这种格式的输出

Array
(
    [Asan_Name_Val] => 447
    [Actual_Ratio] => 25/05/26,04/11/10
)

用PHP编写了一个黑客解决方案。 将工作,但强烈建议您优化

<?php
$myArray = array(
  0 => array(
  'Asan_Name_Val' => '447',
  'Actual_Ratio' => '15/00/15,04/05/05'
  ),
  1 => array(
  'Asan_Name_Val' => '447',
  'Actual_Ratio' => '10/05/11,00/06/05'
  )
);
$sums = array_fill(0,6,'0');
foreach($myArray as $arr){
  $ratio = $arr['Actual_Ratio'];
  $j=0;
  for($i=0;$i<6;$i++){
    $sums[$i] = sprintf("%02d", $sums[$i]+substr($ratio,$j,2));
    $j = $j+3;
  }
}
$finalRatio = "$sums[0]/$sums[1]/$sums[2],$sums[3]/$sums[4]/$sums[5]";

$desiredArray['Asan_Name_Val'] = '447';
$desiredArray['Actual_Ratio'] = $finalRatio;

print_r($desiredArray);

这将是一种灵活而干净的方法:

<?php
$input = [
    [
        'Asan_Name_Val' => "447",
        'Actual_Ratio' => "15/00/15,04/05/05"
    ],
    [
        'Asan_Name_Val' => "447",
        'Actual_Ratio' => "10/05/11,00/06/05"
    ]
];
$output = [];
$formatter = new NumberFormatter('de_DE', NumberFormatter::DECIMAL);

array_walk($input, function($entry) use (&$output, $formatter) {
    $values = explode("/", $entry['Actual_Ratio']);
    foreach($values as &$value) {
        $value = $formatter->parse($value);
    }
    $output[$entry['Asan_Name_Val']][] = $values;
});

array_walk($output, function(&$entry, $key) use ($formatter) {
    for ($i = 0; $i < count($entry[0]); $i++) {
        $sums[] = $formatter->format(array_sum(array_column($entry, $i)));    
    }
    $entry = [
        'Asan_Name_Val' => $key,
        'Actual_Ratio' => implode("/", $sums)
    ];
});

print_r(array_values($output));

到目前为止,您尝试了什么?我尝试了,但没有成功,请在问题的描述中共享您的代码。最有可能的是,您没有尝试任何代码,所以投票被否决。请相应地阅读并编辑您的问题。
15/00/15,04/05/05
是字符串吗?从未见过这样的数值。
Array
(
    [0] => Array
        (
            [Asan_Name_Val] => 447
            [Actual_Ratio] => 25/5/26,04/11/10
        )

)