【问题标题】:Php how to check if a Digital number is bigger than another [duplicate]PHP如何检查一个数字是否大于另一个[重复]
【发布时间】:2016-11-02 18:13:04
【问题描述】:

我得到了两个数字作为字符串:

第一个看起来像这样:

$num1 = "00:10:00"

第二个是这样的:

$num2 = "00:02:02"

如何检查其中一个是否更大。

【问题讨论】:

  • 将它们分成各自的数字成分并比较这些成分?虽然字符串不应该已经正确排序了吗?
  • 这是时间比较吗? “数字号码”的目的是什么?如果您正在寻找时间考虑this

标签: php if-statement int


【解决方案1】:

由于 $num1 和 $num2 是字符串而不是整数,因此您无法与 '' 进行比较。你需要分解这些变量:

$num1 = explode(':',$num1);

你爆炸后,$num1变成一个数组:

// $num1[0] = 0
// $num1[1] = 10
// $num1[2] = 0

所以在你分解 $num1 和 $num2 之后,你可以比较 $num1[0] 和 $num2[0]。

有关爆炸的更多信息:

http://php.net/manual/en/function.explode.php

【讨论】:

    【解决方案2】:

    使用以下代码:

    <?php
    $num1 = "00:13:00";
    $num2 = "00:12:02";
    
    $val1 = explode(':', $num1);
    $val2 = explode(':', $num2);
    
    if((int)$val1[0] > (int)$val2[0]){
        echo "$num1 is greater than $num2";
    }
        else if((int)$val1[1] > (int)$val2[1]){
            echo "$num1 is greater than $num2";
        }
            else if((int)$val1[2] > (int)$val2[2]){
                echo "$num1 is greater than $num2";
            }
                else{ echo "$num2 is greater than $num1";}
    ?>
    

    【讨论】:

      【解决方案3】:

      第一个看起来像这样:

      $num1 = "00:10:00"
      

      第二个是这样的:

      $num2 = "00:02:02"
      

      如何检查其中一个是否更大。

      您需要定义“更大”的含义。但是您的数值似乎从左到右,从大到小读取大小,这是默认处理数值的方式。

      所以你要做的是处理字符串以将其转换为数字,假设01:00:00大于00:59:00。您需要做的就是删除非数字字符并允许 PHP 自然类型转换为整数,或者可以选择自己强制转换(为了清楚起见我在这里):

      $number1 = preg_replace("/[^\d]/","",$num1); //remove non-numeric
      $number1 = (int)$number1; //cast to integer. This is optional. Just for clarity here. 
      
      $number2 = preg_replace("/[^\d]/","",$num1);
      $number2 = (int)$number2;
      

      给予:

      $number1 = 1000
      $number2 = 202
      

      因此:

      if($number1 > $number2){
          //This comparison will return TRUE;
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多