$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; }