我的印象是这个脚本可以用更短的方式重写,但我无法弄清楚如何。 有没有更短的方法来做到这一点?
switch($n){
case 1:
$eta1 = $_POST['eta_1'];
break;
case 2:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
break;
case 3:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
break;
case 4:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
break;
case 5:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
$eta5 = $_POST['eta_5'];
break;
case 6:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
$eta5 = $_POST['eta_5'];
$eta6 = $_POST['eta_6'];
break;
case 7:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
$eta5 = $_POST['eta_5'];
$eta6 = $_POST['eta_6'];
$eta7 = $_POST['eta_7'];
break;
case 8:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
$eta5 = $_POST['eta_5'];
$eta6 = $_POST['eta_6'];
$eta7 = $_POST['eta_7'];
$eta8 = $_POST['eta_8'];
break;
case 9:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
$eta5 = $_POST['eta_5'];
$eta6 = $_POST['eta_6'];
$eta7 = $_POST['eta_7'];
$eta8 = $_POST['eta_8'];
$eta9 = $_POST['eta_9'];
break;
case 10:
$eta1 = $_POST['eta_1'];
$eta2 = $_POST['eta_2'];
$eta3 = $_POST['eta_3'];
$eta4 = $_POST['eta_4'];
$eta5 = $_POST['eta_5'];
$eta6 = $_POST['eta_6'];
$eta7 = $_POST['eta_7'];
$eta8 = $_POST['eta_8'];
$eta9 = $_POST['eta_9'];
$eta10 = $_POST['eta_10'];
break;
default:
break;
}
该名称反映了收到的变量$ _POST的值。
使用@ Don&#t; t Panic发布的代码我需要更新并在现有数组中插入变量值。
for ($i=1; $i <= $n_bambini; $i++) {
${"eta$i"} = $_POST["eta_$i"];
$_SESSION['dati_cerca_vacanza'] = ["eta$i"=>${"eta$i"}];
}
该数组已经以这种格式存在:
$_SESSION['dati_cerca_vacanza']= ['citta'=>$citta, 'tipo_vacanza'=>$tipo_vacanza, 'lingua'=>$lingua, 'data_arrivo'=>$data_arrivo, 'data_partenza'=>$data_partenza, 'n_adulti'=>$n_adulti, 'n_bambini'=>$n_bambini];
因为它不起作用?
答案 0 :(得分:2)
您可以反转这样的选项
switch($n){
case 10:
$eta10 = $_POST['eta_10'];
case 9:
$eta9 = $_POST['eta_9'];
case 8:
$eta8 = $_POST['eta_8'];
case 7:
$eta7 = $_POST['eta_7'];
case 6:
$eta6 = $_POST['eta_6'];
case 5:
$eta5 = $_POST['eta_5'];
case 4:
$eta4 = $_POST['eta_4'];
case 3:
$eta3 = $_POST['eta_3'];
case 2:
$eta2 = $_POST['eta_2'];
case 1:
$eta1 = $_POST['eta_1'];
}
请注意,案例中没有break
,因此,如果$n == 10
...执行以下所有案例
答案 1 :(得分:0)
变量变量的一种方法:
for ($i=1; $i <= $n; $i++) {
${"eta$i"} = $_POST["eta_$i"];
}
${"eta$i"}
创建各种$eta1
,$eta2
等变量名称,$_POST["eta_$i"]
从$_POST
获取相应的值。
关于编辑,如果要将这些值附加到该会话密钥,而不是此
$_SESSION['dati_cerca_vacanza'] = ["eta$i"=>${"eta$i"}];
您可以使用此
$_SESSION['dati_cerca_vacanza']["eta$i"] = $_POST["eta_$i"];
您执行此操作的方式将在每次迭代时替换$_SESSION['dati_cerca_vacanza']
的全部内容。
答案 2 :(得分:0)
为什么在使用数组时使用这么多值?
$eta = array_values($_POST['eta']);
确保你的输入字段进入eta数组