根据其值更改返回的$ _POST值

时间:2013-04-24 00:41:20

标签: php

当我print_r时,它会返回一个数据数组。

print_r($_POST);

我的输入字段是标准地址信息和患者ID:

Array ( [patient_id] => this [Last] => that [First] => Ted [ADDRESS1] => dey
[DOB] => [email] => [insurance_id] => [Phone] => [State] => CA [Zip] => 91236
[Status] => 3 [select_top] => 17 )

对于状态,通常会将其输入为1,2或3。

  • 1等于Lead
  • 2等于活跃
  • 3等于非活动

如何更改POST值,以便在输入3时返回为非活动状态或2返回为活动状态?

是否可以执行foreach循环并将值更改为别名或其他内容?

foreach($_POST as $key => $val){
    if($key == '3') $val = Inactive;
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:7)

您可以使用switch statement。无需使用foreach循环:

switch($_POST['status']) {
    case 1: $_POST['status'] = 'Lead'; break;
    case 2: $_POST['status'] = 'Active'; break;
    case 3: $_POST['status'] = 'Inactive'; break;
    default: $_POST['status'] = 'Huh?';
}

答案 1 :(得分:2)

我宁愿从已知的有效条目集中查找值,而不是操纵$_POST超级全局。例如

$statusValues = array(
    1 => 'Lead',
    2 => 'Active',
    3 => 'Inactive'
);

if (!array_key_exists($_POST['status'], $statusValues)) {
    throw new UnexpectedValueException($_POST['status']);
}
$status = $statusValues[$_POST['status']];