-1

我正在尝试将字符串的高度转换为英寸,因此基本上$height = "5' 10\""需要将字符串转换为 70 英寸。

我将如何从字符串中获取两个 int 值?

这是我的数据库更新文件的一部分

$height = $_GET['Height'];

$heightInInches = feetToInches($height); //Function call to convert to inches

这是我将高度转换为英寸的函数:

function feetToInches( $height) {
preg_match('/((?P<feet>\d+)\')?\s*((?P<inches>\d+)")?/', $feet, $match);
$inches = (($match[feet]*12) + ($match[inches]));

return $inches;

}

它每次只输出0。

4

3 回答 3

1

这是正则表达式的解决方案

<?php
$val = '5\' 10"';
preg_match('/\s*(\d+)\'\s+(\d+)"\s*/', $val, $match);
echo $match[1]*12 + $match[2];

\s*是以防万一有前导或尾随空格。

http://ideone.com/qoa6xu


编辑:
您将错误preg_match的变量传递给,传递$height变量

function feetToInches( $height) {
    preg_match('/((?P<feet>\d+)\')?[\s\xA0]*((?P<inches>\d+)")?/', $height, $match);
    $inches = (($match['feet']*12) + ($match['inches']));

    return $inches; 
}

http://ideone.com/1T28sg

于 2013-04-28T05:45:45.597 回答
0

这会起作用:

$height = "5' 10\"";

$height = explode("'", $height);      // Create an array, split on '
$feet = $height[0];                   // Feet is everything before ', so in [0]
$inches = substr($height[1], 0, -1);  // Inches is [1]; Remove the " from the end

$total = ($feet * 12) + $inches;      // 70
于 2013-04-28T05:39:35.530 回答
0
$parts = explode(" ",$height);

$feet = (int) preg_replace('/[^0-9]/', '', $parts[0]);

$inches = (int) preg_replace('/[^0-9]/', '', $parts[1]);
于 2013-04-28T05:41:54.310 回答