2012-06-14 36 views
6

Xin lỗi vì yêu cầu này, nhưng tôi không thể tìm thấy một giải pháp mà sẽ có được điều này -> 7.000 đến 7000.php chuyển đổi định dạng int để int

Tôi đang sử dụng intval() và number_format() nhưng nó sẽ chỉ cung cấp tôi 7 không 7000.

$myVal = '7,000'; 
echo intval($myVal); 

này trả 7

cùng đi với number_format()

những gì tôi làm sai?

+0

Cài đặt php của bạn có được bản địa hóa sang quốc gia có ',' là dấu tách thập phân không? – gcochard

+0

Kiểm tra bản địa hóa của bạn cho những gì @Greg đã nói, nhân tiện, bạn có đang sử dụng Windows không? –

Trả lời

6

intval() sẽ không hoạt động với chuỗi bạn có vì dấu phẩy. Bạn có thể loại bỏ các dấu phẩy bằng cách sử dụng str_replace() và sau đó gọi intval() như vậy:

echo intval(str_replace(',', '', $myVal))

10

Nếu bạn đang sử dụng PHP> = 5.3 (hoặc có phần mở rộng "Sân bay quốc tế" được cài đặt, với ít nhất phiên bản 1.0) sau đó bạn cũng có thể sử dụng lớp NumberFormatter để phân tích cú pháp số địa phương cụ thể.

$myVal = '7,000'; 
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL); 

var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32)); 

# output: int(7000) 

Nếu bạn đang sử dụng phiên bản PHP dưới 5.3 thì tốt hơn bạn nên sử dụng @KevinS. dung dịch.

+0

Đây là một câu trả lời tốt hơn, cảm ơn! – thefreeman

Các vấn đề liên quan