if语句在PHP中的数组中的条件

时间:2016-10-22 17:14:57

标签: php mysql

我有两个数组。 First包含变量名,第二个包含从MySQL表中提取的浮点值和条件,数据类型为varchar。现在我想在if语句中使用这些名称和值。可能吗?让我解释一下代码。

for ($i=0; $i<5; $i++) {
    if ($_POST[$names[$i]] $val[$i]) {
        echo "Do something";
    }                       
}
  

$ names = array(name1,name2,name4)
  $ val = array(&lt; 121.5,&lt; = 88.9,&gt; 77.3)

我想在这两者之间进行逻辑比较,比较运算符与您可以看到的数组中的值一起存储。如果if语句不可能。请建议我采取其他方法来做到这一点。谢谢!

2 个答案:

答案 0 :(得分:0)

我建议你以其他方式做。我知道它看起来很疯狂,但它会解决你的问题:)

$names = array (name1, name2, name4 );
$val = array (array('bigger',121.5), array('smaller_even',88.9),array('smaller',77.3));

for ($i=0; $i<5; $i++){
    switch ($val[$i][0]){
        case: 'bigger':
        if($name[$i]>$val[$i][1]){
           echo 'do something';
        }
        break;
    }
}

答案 1 :(得分:0)

这是一个想法:

首先,在比较数组$val上使用此正则表达式:

preg_match('/([^\d]+)(\d+)/', $val[$i][0], $match);

现在,您将$match[1]中的比较运算符与$match[2]中的比较数字进行比较。然后使用几个ifs或开关检查它是哪个比较运算符,然后使用常规if子句。

例如:

if ($match[1] === '<=') {
    if ((int)$match[2] <= $_POST[$names[$i]]) {
        //do something
    }
} elseif ($match[1] === '>') {
    if ((int)$match[2] > $_POST[$names[$i]]) {
        //do something else
    }
}