我现在想做一个功能,就是说根据order_status状态 判断出site_status状态
我现在做的程序是这样的
foreach($reval->result() as $row)
{
$order_status = $row->order_status;
}
if($order_status == 10 or $order_status==7 or $order_status==8)
{
$site_status = 1;
}
else
{
if($order_status ==0 or $order_status==4 or $order_status==1 or $order_status==12 or $order_status==6)
{
$site_status=2;
}
else
{
if($order_status ==5)
{
$site_status=3;
}
else
{
$site_status=4;
}
}
}
我想实现的是 只要有 order_status=7,8,10中的任何一个就不再判断下面的了
现在就是有可能我有2个订单需要进行这样的判断,我这样判断的话每次判断出来的site_status就是根据最后一个order_status判断的 ,有没有什么方法把order_status全部取出来才进行if判断
我现在做的程序是这样的
foreach($reval->result() as $row)
{
$order_status = $row->order_status;
}
if($order_status == 10 or $order_status==7 or $order_status==8)
{
$site_status = 1;
}
else
{
if($order_status ==0 or $order_status==4 or $order_status==1 or $order_status==12 or $order_status==6)
{
$site_status=2;
}
else
{
if($order_status ==5)
{
$site_status=3;
}
else
{
$site_status=4;
}
}
}
我想实现的是 只要有 order_status=7,8,10中的任何一个就不再判断下面的了
现在就是有可能我有2个订单需要进行这样的判断,我这样判断的话每次判断出来的site_status就是根据最后一个order_status判断的 ,有没有什么方法把order_status全部取出来才进行if判断
$arr=array(7,8,10);
foreach($reval->result() as $row)
{
$order_status = $row->order_status;
}
if(!in_array($order_status,$arr)) //实现的是 只要有 order_status=7,8,10中的任何一个就不再判断下面的了 {
$site_status = 1;
exit;
}
else
{
if($order_status ==0 or $order_status==4 or $order_status==1 or $order_status==12 or $order_status==6)
{
$site_status=2;
}
else
{
if($order_status ==5)
{
$site_status=3;
}
else
{
$site_status=4;
}
}
}
$site_status = 1;
exit;
}
foreach($reval->result() as $row) {
$order_status = $row->order_status;
if($order_status == 10 or $order_status==7 or $order_status==8) {
$site_status = 1;
break; // 满足条件7,8,10跳出循环
}elseif($order_status ==0 or $order_status==4 or $order_status==1 or $order_status==12 or $order_status==6) {
$site_status=2;
}elseif($order_status ==5){
$site_status=3;
}else{
$site_status=4;
}
}
$num = count($reval->result());
$i = 0;
foreach($reval->result() as $row) {
$i++;
$order_status = $row->order_status;
if($order_status == 10 or $order_status==7 or $order_status==8) {
$site_status = 1;
break; // 满足条件7,8,10跳出循环
}elseif($i < $num){
//如果不是最后一个元素,则继续循环
continue;
}else{
if($order_status ==0 or $order_status==4 or $order_status==1 or $order_status==12 or $order_status==6) {
$site_status=2;
}elseif($order_status ==5){
$site_status=3;
}else{
$site_status=4;
}
}
}
{
$order_status = $row->order_status;
}
??????????你的判断在循环之外,当然就是根据最后一个order_status判断的
你需要将判断放在循环之内
$i=0;
foreach($reval->result() as $row)
{
//$order_status = $row->order_status;
$order_start_list[$i]=$row->order_status;
$i++;
}
/**
* 声明一个处理函数
* $arr 刚才取得的订单号的数组
* **/
function change($arr)
{
$tag_not=array(7,8,10); //如果订单号 存在 10,7,8 的其中一个 则不执行。 for($j=0;$j<count($arr);$j++) //循环判断订单数组
{
if(in_array($arr[$j],$tag_not)) //判断是否存在 7 8 10
{
$site_status = 1;
return $site_status;
}else if($arr[$j]==5) //订单数组中有等于5的情况
{
$site_status = 3;
return $site_status;
}
//........//依次判断。
}
}
//调用方法
$a=change($order_start_list);