有薦於看了兩年多前的寫法,雖然關鍵句上有加註解,但是還是很難理解!

為了不讓單位重覆,還要分割跑迴圈,實在有點麻煩,所以就改寫個比較容易理解的作法,一個迴圈搞定!

function num2str($number){
	#中文數字陣列
	$numb_arr=array('零','壹','貳','參','肆','伍','陸','柒','捌','玖');
	#單位陣列
	$unit_arr=array('元','拾','佰','仟','萬','拾','佰','仟','億','拾','佰','仟','兆','拾','佰','仟','京');
	
	#過濾逗號
	$newString = str_replace(',', '', $number);
	#字串長度
	$length = strlen($newString);
	$i=0;
	do{
		#依序取出一位數
		$n = substr($newString, -$length + $i, 1);
		if(0==$n){#直接為0且不加單位
			$total .= 0;
		}else{
			#中文數字 + 單位
			$total .= $numb_arr[$n] . $unit_arr[($length - 1) - $i];
		}
		$i++;
	}while($i < $length);
	#取代重複的0
	return preg_replace('/0+/', '零', $total);
}
arrow
arrow
    全站熱搜

    Brian Wang 發表在 痞客邦 留言(0) 人氣()