我正在写一个PHP脚本,我想检查一个数字是否在两个其他数字之间,比如20< x < 40
,但在一个更高的范围内,比如
0,400,500,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3500,3800,4100,4400,4700,5000
我想检查它是否在0和400之间,然后它是否在它们之间echo,如果不是,则检查它是否介于400和500之间。。。我的程序是这样的:
$lt=array(0,400,500,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3500,3800,4100,4400,4700,5000);
$lt2=array(399,499,599,799,999,1199,1399,1599,1799,1999,2199,2399,2599,2799,2999,3199,3499,3799,4099,4399,4699,4999,99999);
$value = 5000
$legend = count($lt2);
for ($x = 0; $x == $legend+1; $x++);
{
if (($value >= $lt[$x]) and ($value < $lt2[$x]))
{
$y=$x-1;
echo "True!";
}
}
我的问题是,它从来没有进入IF语句。虽然我的if语句是正确的,但我的数字介于两个数字之间,但它没有任何回声。
您的代码有点错误,但我已经帮您修复了:
您的错误:
$value = 5000
缺少分号
for ($x = 0; $x == $legend+1; $x++);
需要更改为:for ($x = 0; $x < ($legend - 1); $x++)
请注意,for循环中有一个分号,条件是错误的。
此外,$y = $x - 1
需要重写为:$y = $x;
$lt=array(0,400,500,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3500,3800,4100,4400,4700,5000);
$lt2=array(399,499,599,799,999,1199,1399,1599,1799,1999,2199,2399,2599,2799,2999,3199,3499,3799,4099,4399,4699,4999,99999);
$value = 5000;
$legend = count($lt2);
for ($x = 0; $x < $legend; $x++)
{
if (($value >= $lt[$x]) && ($value < $lt2[$x]))
{
$y = $x;
echo "True!";
}
}
echo $lt[$y];
?>
这一行缺少分号:
$value = 5000
此外,无法达到for
语句中的条件$x == $legend + 1
。CCD_ 9是CCD_。长度为0或更高,因此$x
永远不可能是$legend + 1
,因为它被定义为$x = 0
。
也许,你需要$x <= $legend + 1
(也许你不得不省略+ 1
(。