3

当我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 等于铅
  • 2 等于激活
  • 3 等于不活动

如何更改 POST 值,以便在输入 3 时将其返回为 Inactive 或 2 返回为 Active?

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

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

任何帮助将不胜感激。

4

2 回答 2

7

你可以使用一个switch语句。无需使用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?';
}
于 2013-04-24T00:46:16.950 回答
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']];
于 2013-04-24T00:58:20.553 回答