亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對數組中的字符串值求和

如何對數組中的字符串值求和

PHP
智慧大石 2022-01-23 10:49:38
這是我的數組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)
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

用 PHP 寫了一個 hacky 解決方案。會起作用,但強烈建議您進行優化。


<?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);


查看完整回答
反對 回復 2022-01-23
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

這將是一種靈活而干凈的方法:


<?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));

輸出顯然是:


Array

(

    [0] => Array

        (

            [Asan_Name_Val] => 447

            [Actual_Ratio] => 25/5/26,04/11/10

        )


)


查看完整回答
反對 回復 2022-01-23
  • 2 回答
  • 0 關注
  • 182 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號