来自列的数据作为IF条件和值

时间:2013-12-06 11:16:53

标签: php

这是一个奇怪的。我正在尝试使用列中的数据作为运算符和值。我可以将条件和值分开(为了更好的数据类型使用),但我的问题仍然存在。

  

第1栏数据:50,3,70,2

     

第2栏数据:< 1,> = 5,< = 7,> 1

我想构建一个如下所示的IF语句:

if ($column1 >= 5){} -Where >=5 is from column 2.

条件和价值来自上面的列。这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

理智的解决方案是创建一个简单的解析器/评估引擎。 E.g:

$var1 = '50';
$var2 = '< 1';

if (!preg_match('/(\w+)\s*(\d+)/', $var2, $operands)) {
    throw new InvalidArgumentException("Invalid expression '$var2'");
}

switch ($operands[1]) {
    case '<' :
        return $var1 < $operands[2];
    case '<=' :
        return $var1 <= $operands[2];
    ...
    default :
        throw new InvalidArgumentException("Unsupported operator '$operands[1]'");
}

另请参阅此问题是否符合您的需求:http://symfony.com/doc/current/components/expression_language/introduction.html#how-can-the-expression-engine-help-me