如何在if条件下检查数组值?

时间:2019-07-01 16:19:04

标签: php codeigniter-3

我正在使用codeignator,并且正在数组中获取多个值。

$status = $this->input->post('Status[]');
print_r($status);

输出为

Array ( 
[0] => 1 
[1] => 7 
[2] => 8 
[3] => 7 
)
It will increase and value will be duplicate like 7.

现在我必须检查每个数组的值。所以我尝试了

if (($status=1)||($status=3) || ($status=6) || ($status=8)|| ($status=9)) {
    $remark = $this->input->post('remark[]');
   }
   else{$remark="";}

if(($status=2)||($status=4) || ($status=5)){
    $reasonDate = $this->input->post('reasonDate[]');
    $remark = $this->input->post('remark[]');
     }
  else{
       $reasonDate="";
       $remark="";
}

if($status=7){
   $reasonA = $this->input->post('reasonA[]');
   $reason = $this->input->post('reason[]');
   }
   else{
        $reasonAmt="";
        $reason="";
 }

您能帮我了解如何使用if条件检查数组值吗?我是否需要使用in_array或其他任何方式?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您要尝试做什么,所以希望以下答案之一会有所帮助。

如果试图遍历数组中的每个状态并检查它是否为特定值,则可以使用foreach循环。看起来像这样:

$statuses = [1, 7, 8, 7];

foreach ($statuses as $status) {
    if ($status=1 || $status=3 || $status=6 || $status=8 || $status=9) {
        // Do something
    }
    else {
        // Do something else
    }
    // etc...
}

如果您要检查数组中的至少一种状态是否为特定值,则可以使用Dave建议的“ in_array”函数。看起来像这样:

$statuses = [1, 7, 8, 7];

if (in_array(1, $statuses) || in_array(3, $statuses) || in_array(6, $statuses) || in_array(8, $statuses) || in_array(9, $statuses)) {
    // Do something
}
else {
    // Do something else
}
// etc...

您可以查找“ in_array”函数here.

的文档