我有两个数字作为字符串:
第一个看起来像这样:
$ num1 =" 00:10:00"
,第二个是这样的:
$ num2 =" 00:02:02"
我怎样才能检查其中一个更大。
答案 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的更多信息:
答案 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";}
?>