Php如何检查数字号码是否大于另一个

时间:2016-06-30 14:51:06

标签: php if-statement int

我有两个数字作为字符串:

第一个看起来像这样:

  

$ num1 =" 00:10:00"

,第二个是这样的:

  

$ num2 =" 00:02:02"

我怎样才能检查其中一个更大。

3 个答案:

答案 0 :(得分:1)

  

第一个看起来像这样:

$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;
 }

答案 1 :(得分:-1)

由于$ num1和$ num2是字符串而不是整数,因此无法与'<'进行比较或''gt;'。你需要爆炸这些变量:

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

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

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

因此,在您爆炸$ num1和$ num2后,您可以将$ num1 [0]与$ num2 [0]进行比较。

有关explode的更多信息:

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

答案 2 :(得分:-1)

使用以下代码:

<?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";}
?>