将包含英尺和英寸的字符串转换或解析为PHP中的数字

时间:2014-05-27 19:07:49

标签: php

在我的数据库中,有一个名为height的字段是varchar(9)字段。最终用户从下拉列表中选择一个值,该列表包含以下值:

5'0
5'0 1/2
5'1
5'1 1/2
5'2
5'2 1/2
等等...... 7'4

我需要做的是将此字符串转换为数字英寸,以便进行服务器端计算。我不知道如何处理这个字符串转换,所以非常感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

你想先获得英尺,英寸和分数的单独变量

$toBeConverted = "5' 4 1/2";
list($feet,$inches,$frac) = explode(' ',$toBeConverted . ' ');

然后添加这些值

$total = ((str_replace("'",'',$feet) * 12) + $inches + ($frac == '1/2' ? (1/2) : 0));

答案 1 :(得分:0)

如果您知道下拉的索引,第一个值为0,则英寸数为

$inches = 60 + $pulldownIndex * 0.5;

因为你从5'开始(5 * 12 = 60)并以0.5英寸的增量向上移动。

或者,如果您想查看下拉菜单上的字符串,我建议您查看Felix的答案 - 它非常紧凑和优雅。

答案 2 :(得分:0)

$inches=0;
$array=explode(" ",$string);//where $string is "5' 0 1/2" for example
if ($array[2]='1/2') $inches=(int)$array[0]*12+(int)$array[1]+0.5;
    else $inches=(int)$array[0]*12+(int)$array[1];