Wordpress Dev

Hàm php chuyển số tiền Việt Nam sang chữ

Mình hiện đang làm vài trang rao vặt cho khách hàng, cũng vì nhu cầu cần phải biến đổi các số to …

Mình hiện đang làm vài trang rao vặt cho khách hàng, cũng vì nhu cầu cần phải biến đổi các số to đùng sang chữ cho nó ngắn lại / để dễ hiểu hơn, website bất động sản thì số to thôi rồi 😀

Test hàm đọc số tiền

Test hàm đọc số tiền

Vì chưa thấy thiên hạ chia sẻ hàm để làm việc này nên tôi phải tự làm, cũng được chả sao, mất toi 1 tiếng lọ mọ cơ mà thú vị, cuối cùng thì tìm được cách tối ưu nhất để đọc cái chuỗi số ấy ra ngoài !

Bước 1: Format lại số

Đầu tiên, ta cho số 32000000000 ( đọc là 32 tỉ ), sau đó ta dùng hàm number_format để băm nó thành nhóm 3 số 1 , ta được 32,000,000,000 => Ngon dần đều

Bước 2: Băm nát dãy số = 3 số một

Dùng hàm sau: explode (‘,’, $num); ta được:

array {
    [0] => 32,
    [1] => 000,
    [2] => 000,
    [3] => 000,
}

Haha, ngon dần rồi đấy, có cơ sở để đọc nó, giờ ta tính dùng hàm Count để có thể đếm xem nó là số tỉ hay triệu, ta chỉ cần: count( $array );

Bước 3: Đọc nó

Nếu có 4 array, thì đọc “$array[0]” tỉ, nếu $array[1] đọc tiếp “triệu”, còn lại thích đọc tiếp thì đọc !

Nếu có 3 array, thì đọc “$array[0]” triệu, nếu $array[1] đọc tiếp “ngàn”, còn lại thích đọc tiếp thì đọc !

Sau đây là toàn bộ code, các bạn thích thì lấy về mà dùng cho đỡ mất công viết mới:

function jam_read_num_forvietnamese( $num = false ) {
    $str = '';
    $num  = trim($num);
    
    $arr = str_split($num);
    $count = count( $arr );
    
    $f = number_format($num);
       //KHÔNG ĐỌC BẤT KÌ SỐ NÀO NHỎ DƯỚI 999 ngàn
    if ( $count < 7 ) {
        $str = $num;
    } else {
        // từ 6 số trở lên là triệu, ta sẽ đọc nó !
        // "32,000,000,000"
        $r = explode(',', $f);
        switch ( count ( $r ) ) {
            case 4:
                $str = $r[0] . ' tỉ';
                if ( (int) $r[1] ) { $str .= ' '. $r[1] . ' Tr'; }
            break;
            case 3:
                $str = $r[0] . ' Triệu';
                if ( (int) $r[1] ) { $str .= ' '. $r[1] . 'K'; }
            break;
        }
    }
    return ( $str . ' ₫' );
}

Chúc các bạn thành công !

Thông tin liên quan