$arr = [12,2000222000040,54222];
echo arr_sum($arr);
function arr_sum(array $arr) : int
{
$temp = [0];
$result = '';
while(count($arr)>0){
foreach($arr as $key => $val){
$num = substr($val,-1); //取最后一位
if($num>0) $temp[] = $num;
$val = substr($val,0,-1); //截去最后一位
if($val<1) unset($arr[$key]); //如果数据已加完,清除
else $arr[$key] = $val;
}
$all = array_sum($temp);
$next = intval($all/10);
if(count($arr)==1&&$next==0){ //仅剩最后一个元素且无进位数,直接拼接最后一个元素
$result = (String)end($arr).($all%10).(String)$result;
break;
}else{
$result = ($all%10).(String)$result;
$temp = [$next];
}
}
return $result;
}