比较以下数组中的值
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;
}
}
答案 0 :(得分:3)
虽然您进行比较的方式看起来很奇怪,但我认为您有数据清理问题。在问题的顶部,您似乎正在执行var_dump()
。请注意'09:30' (length=5)
如何正确但'11:00' (length=7)
错误,因为长度也应为5。在数据的开头或结尾有一些额外的隐藏字符(可能是\ n或\ r \ n)。
要修复,请在比较前尝试在每个数组元素上运行$value = trim($value)
。