我正在使用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或其他任何方式?
答案 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.
的文档