admin

有条件地运行php代码

sql

我想基于php数组返回的值来运行代码。如果将值返回为Disabled,则将不匹配处于Disabled状态的商品。

这行代码工作正常。

if ($condition1 >= $offer1 AND $condition2 >= $offer2  AND 
$condition3 >= $offer3  AND  $condition4 >= $offer4     ) 
      {  //run code }
else {  //some error messages  }


$condition1 and all are numeric value 
$offer1  and all are numeric value

样本输出和数组值

while($row = mysql_fetch_array($sql))  
{
$offerstatus[] = $row['offer_status'];
//some more output
}

存储在此数组中的值$ offerstatus [] =启用或禁用

这些值是参考提供的 样本值 存储的


offer   status 
offer1  enabled
offer2  enabled 
offer3  disable
offern  disable

或者

condition     offer status
 50           51    enabled
100           99    enabled
122          865    disable
NNN          offern disable

我想基于从此数组 $ offerstatus [] 返回的值运行上述查询 ,以便仅匹配那些启用了值的条件。
问题:
我要为重新调整为enabled的所有值运行此代码,并希望匹配这些条件。

根据样本值

上面应该像这样自动打开

if ($condition1 >= $offer1 AND $condition2 >= $offer2     ) 
      {  //run code }
else {  //some error messages  }

如果问题不清楚,请告诉我。


阅读 139

收藏
2021-06-07

共1个答案

admin

条件和报价必须在数组中

$condition=array(50,100,122);
$offer=array(51,99,865);

现在过滤那些 启用了* 值的数组 *

function filter_enabled($val){
    if($val=='enabled'){
        return true;
    }
}

$filtered_offerstatus=array_filter($offerstatus,'filter_enabled');

现在$filtered_offerstatus只包含那些 启用的 值,现在检查条件是否大于等于

$check=false;
foreach($filtered_offerstatus as $key=>$value){

        if($condition[$key]>=$offer[$key]){
            $check=true;
        }
        else{
            $check=false;
            break; //if $condition is less than $offer it will get out of loop.
        }
}

现在,如果所有值都设置为 true ,则将执行代码,否则将显示 错误消息

if($check===true){
    echo "Execute Code";
}
else{
    echo "Some Error Message";
}

注意:我们假设$ condition,$ offer和$ offerstatus具有相同的数组长度,否则该程序将无法工作。

2021-06-07