php - 使用 PHP 将数字缩写(5.2k、1.7m 等)转换为有效整数

标签 php numbers integer

我有一个数据库,其中有一列包含各种以“速记”形式书写的数字,例如:

5000 人需要 5000 人
86,600 为 86.6k
4.1m 4,100,000
1.2b 为 1,200,000,000

我想对 PHP 前端的这些数字进行一些计算,但我需要将它们转换为有效的整数才能执行此操作。我如何使用 PHP 执行此操作?

最佳答案

如果这是你的数据格式,并且是一致的。 你可以编写自己的函数。 创建一个后缀映射到乘数.. "k"=> 1000, "m"=> 100000

并将整数值乘以乘数。 这是一个基于 sscanf 的解决方案:http://codepad.org/FjwBbx1D

<?php

$map = array("k" => 1000,"m" => 1000000,"b" => 1000000000);
$money = "86.6k";
list($value,$suffix) = sscanf($money, "%f%s");
$final = $value*$map[$suffix];
var_dump($final);

?>

这是一个简单的衬垫:

<?php
$money = "86.6k";
$value = substr($money,0,-1)*pow(10,strpos("---k--m--b",substr($money,-1))) ;
var_dump($value);
?>

关于php - 使用 PHP 将数字缩写(5.2k、1.7m 等)转换为有效整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5467694/

相关文章:

javascript - 具有多个输入的自动完成搜索表单php mysql

php - 如何在 yii2 中向 listview 传递一个额外的变量

ios - 获取 Photos.app 中的图像数量?

c - 在c中获取文件文本的行数

java - 内部存储:微调器值和 TextView 为整数

php - 在 div 标签中从 MySQL 接收数据

php - DropBox PHP-API 检查用户是否登录以及应用程序是否获得授权

java - 如何使Java中的字符串计算器能够处理负数?

c - 从数组中输入几个数字,每个数字检查是否为整数

php - 在 PHP 中将整数转换为字母数字序列