如何在字符串中乘以两个数字

时间:2018-01-04 07:05:32

标签: php

我有一个像“1X6TAB”这样的字符串。现在我将一些正则表达式应用于此字符串以删除“TAB”并将“X”替换为“*”,因此我的最终字符串将为“1 * 6”。预期结果为“6”,但结果为“1 * 6”。

代码:

Regexonlynumber("1X6TAB");
function Regexonlynumber($number){
    $number = preg_replace("/[^0-9.X]/", '', $number);
    echo str_replace('X',"*",$number);die;
}

4 个答案:

答案 0 :(得分:12)

而不是str_replace(),您可以'X'分隔符explode(),然后使用array_product()

Regexonlynumber("1X6TAB");
function Regexonlynumber($number){
    $number = preg_replace("/[^0-9.X]/", '', $number);
    echo array_product(explode('X', $number));
}

答案 1 :(得分:3)

你快到了。只需再添加一步即可爆炸和倍增,如下所示:

<?php
    function Regexonlynumber($number){
        $number = preg_replace("/[^0-9.X]/", '', $number);
        $arr = explode("X", $number);
        echo $arr[0]*$arr[1];
    }
    Regexonlynumber("2X6TAB");
?>

Demo

你甚至可以这样做:

function Regexonlynumber($number){
    $arr = explode("X", $number);
    echo $arr[0]*$arr[1];
}

Demo

答案 2 :(得分:2)

Regexonlynumber()函数可帮助您从字符串

获取数字的乘积

array_product()函数: - array_product()函数计算并返回数组的乘积。

str_split()函数: - str_split()函数将字符串拆分为数组。

<?php
    function Regexonlynumber($number){
        $number = preg_replace("/[^0-9,.]/", "", $number);
        echo array_product(str_split($number));
    }

    Regexonlynumber("1X6TAB");
?>

答案 3 :(得分:2)

最好使用eval(),它还可以计算更复杂的表达式:

Regexonlynumber("3X6-13TAB");
function Regexonlynumber($number){
    $number = preg_replace("/[^0-9.X\-\+\/]/", '', $number);
    $str = str_replace('X',"*",$number);
    eval("\$result = {$str};");
    echo $str . " = " . $result . "\n";
}
相关问题