
Nhu cầu đọc số thành chữ là vô cùng cần thiết trong các bài toán quản lý. Nhưng khi bắt tay vào viết một hàm để đọc số thành chữ rất là mất thời gian. Hôm nay, Tôi chia sẽ với các bạn một class php tôi đã viết sẵng chỉ việc sử dụng lại thôi cho đỡ tốn thời gian hihi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
<?php class Docso { public function doc1so($so) { $arr_chuhangdonvi = array( 'không', 'một', 'hai', 'ba', 'bốn', 'năm', 'sáu', 'bảy', 'tám', 'chín'); $resualt = ''; $resualt = $arr_chuhangdonvi[$so]; return $resualt; } public function doc2so($so) { $arr_chubinhthuong = array( 'không', 'một', 'hai', 'ba', 'bốn', 'năm', 'sáu', 'bảy', 'tám', 'chín'); $arr_chuhangdonvi = array( 'mươi', 'mốt', 'hai', 'ba', 'bốn', 'lăm', 'sáu', 'bảy', 'tám', 'chín'); $arr_chuhangchuc = array( '', 'mười', 'hai mươi', 'ba mươi', 'bốn mươi', 'năm mươi', 'sáu mươi', 'bảy mươi', 'tám mươi', 'chín mươi'); $resualt = ''; $sohangchuc = substr($so, 0, 1); $sohangdonvi = substr($so, 1, 1); $resualt .= $arr_chuhangchuc[$sohangchuc]; if ($sohangchuc == 1 && $sohangdonvi == 1) $resualt .= ' ' . $arr_chubinhthuong[$sohangdonvi]; elseif ($sohangchuc == 1 && $sohangdonvi > 1) $resualt .= ' ' . $arr_chuhangdonvi[$sohangdonvi]; elseif ($sohangchuc > 1 && $sohangdonvi > 0) $resualt .= ' ' . $arr_chuhangdonvi[$sohangdonvi]; return $resualt; } public function doc3so($so) { $resualt = ''; $arr_chubinhthuong = array( 'không', 'một', 'hai', 'ba', 'bốn', 'năm', 'sáu', 'bảy', 'tám', 'chín'); $sohangtram = substr($so, 0, 1); $sohangchuc = substr($so, 1, 1); $sohangdonvi = substr($so, 2, 1); $resualt = $arr_chubinhthuong[$sohangtram] . ' trăm'; if ($sohangchuc == 0 && $sohangdonvi != 0) $resualt .= ' linh ' . $arr_chubinhthuong[$sohangdonvi]; elseif ($sohangchuc != 0) $resualt .= ' ' . $this->doc2so($sohangchuc . $sohangdonvi); return $resualt; } public function doc($so) { $result = ''; $arr_So = array( 'ty' => '', 'trieu' => '', 'nghin' => '', 'tram' => ''); $sochuso = strlen($so); for ($i = $sochuso - 1; $i >= 0; $i–) { if ($sochuso - $i <= 3) { $arr_So[‘tram’] = substr($so, $i, 1) . $arr_So[‘tram’]; } elseif ($sochuso - $i > 3 && $sochuso - $i <= 6) { $arr_So[‘nghin’] = substr($so, $i, 1) . $arr_So[‘nghin’]; } elseif ($sochuso - $i > 6 && $sochuso - $i <= 9) { $arr_So[‘trieu’] = substr($so, $i, 1) . $arr_So[‘trieu’]; } else { $arr_So[‘ty’] = substr($so, $i, 1) . $arr_So[‘ty’]; } } if ($arr_So[‘ty’] > 0) $result .= $this->doc($arr_So[‘ty’]) . ' tỷ'; if ($arr_So[‘trieu’] > 0) { if ($arr_So[‘trieu’] >= 100 || $arr_So[‘ty’] > 0) $result .= ' ' . $this->doc3so($arr_So[‘trieu’]) . ' triệu'; elseif ($arr_So[‘trieu’] >= 10) $result .= ' ' . $this->doc2so($arr_So[‘trieu’]) . ' triệu'; else $result .= ' ' . $this->doc1so($arr_So[‘trieu’]) . ' triệu'; } if ($arr_So[‘nghin’] > 0) { if ($arr_So[‘nghin’] >= 100 || $arr_So[‘trieu’] > 0) $result .= ' ' . $this->doc3so($arr_So[‘nghin’]) . ' nghìn'; elseif ($arr_So[‘nghin’] >= 10) $result .= ' ' . $this->doc2so($arr_So[‘nghin’]) . ' nghìn'; else $result .= ' ' . $this->doc1so($arr_So[‘nghin’]) . ' nghìn'; } if ($arr_So[‘tram’] > 0) { if ($arr_So[‘tram’] >= 100 || $arr_So[‘nghin’] > 0) $result .= ' ' . $this->doc3so($arr_So[‘tram’]); elseif ($arr_So[‘tram’] >= 10) $result .= ' ' . $this->doc2so($arr_So[‘tram’]); else $result .= ' ' . $this->doc1so($arr_So[‘tram’]); } return $result; } } ?> |
Ngoài ra, bạn cũng có thể trải nghiệm API để đọc số của chúng tôi ở link sau: https://api.nosomovo.xyz/convert
Hy vọng hữu ích với bạn!
Nosomovo