PHP比较两个值?

时间:2014-08-02 18:14:19

标签: php

比较以下数组中的值

array
  0 => 
    array
      0 => string '09:30' (length=5)
      1 => string '11:00' (length=7)
  1 => 
    array
      0 => string '11:01' (length=5)
      1 => string '18:00' (length=7)
  2 => 
    array
      0 => string '12:05' (length=5)
      1 => string '14:00' (length=7)
  3 => 
    array
      0 => string '14:00' (length=5)
      1 => string '20:20' (length=7)

如果我使用的是if($a > $b),那么即使对于相等的值($a = $b) // this is not comparision也是如此,       而 if($a - $b > 0)正在给出准确的结果。

为什么会这样?

编辑:我正在使用cmp的代码部分。

这很好

for($i=0; $i < $fr -1 ; $i++)
{
    if( $dtime[$i][1] - $dtime[$i+1][0] > 0 )
    {
        echo 'It is clashing';
        break;
    }
}

这不正常

for($i=0; $i < $fr -1 ; $i++)
{
    if( $dtime[$i][1] > $dtime[$i+1][0] )
    {
        echo 'It is clashing';
        break;
    }
}

1 个答案:

答案 0 :(得分:3)

虽然您进行比较的方式看起来很奇怪,但我认为您有数据清理问题。在问题的顶部,您似乎正在执行var_dump()。请注意'09:30' (length=5)如何正确但'11:00' (length=7)错误,因为长度也应为5。在数据的开头或结尾有一些额外的隐藏字符(可能是\ n或\ r \ n)。

要修复,请在比较前尝试在每个数组元素上运行$value = trim($value)