我正在编写一个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之间,然后如果它们在它们之间回声,如果它不检查它是否在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语句是正确的,但我的号码在两个数字之间,但它没有回应任何东西。
答案 0 :(得分:1)
您的代码有点不对,但我已经为您解决了这个问题:
您的错误:
$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];
?>
答案 1 :(得分:0)
此行中缺少分号:
$value = 5000
此外,无法达到$x == $legend + 1
语句中的条件for
。 $legend + 1
是$lt2
的长度增加1.长度为0或更高,因此$x
永远不会是$legend + 1
,因为它被定义为$x = 0
您可能需要$x <= $legend + 1
(也许您必须遗漏+ 1
)。