比较下面数组中的值
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)
它甚至在相等值的情况下给出true ($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;
}
}
尽管您进行比较的方式似乎很奇怪,但我认为您存在数据清理问题。在问题的顶部,您似乎正在做一个var_dump()
。注意长度'09:30' (length=5)
正确但'11:00' (length=7)
错误,因为长度也应为5。数据的开头或结尾还有一些其他隐藏字符(可能是\ n或\ r)。
要进行修复,$value = trim($value)
请在比较之前尝试在每个数组元素上运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句