有没有办法通过多个变量并使用switch语句更改其值?
假设我在foreach循环中有这些变量:
list( $variable1,$variable2,$variable3 ) = explode( '.', $variable );
所以我将字符串拆分为三个不同的变量,每个变量用一个点分隔。如果是“1.5.6”则$ variable1 = 1,$ variable2 = 5且$ variable3 = 6.
有时$变量可能只是“1”或“1.5”等,因此$ variable2或3可能为空。
通过使用switch语句,我想将这些数字改为其他
for ($i = 1; $i <= 3; $i++) {
switch ($variable[$i]) {
case "1": $variable[$i] = 100; break;
case "2": $variable[$i] = 200; break;
case "3": $variable[$i] = 300; break;
}
}
我用循环来经历它三次(我分裂的变量数)。在第二行中我使用了switch语句,而我正在尝试做的是通过$ variable1,然后是$ variable2和$ variable3。
为了改变他们的号码。如何使用实际名称“variable1”等进行此操作?我不想有重复的代码(每个变量有3个switch语句)。是否可以在for循环中只使用一个?
答案 0 :(得分:1)
如果您不使用list()但保留数组,那么它只是另一个嵌套级别 - &gt;另一个foreach循环
foreach( explode(....) as $v ) {
switch($v....
答案 1 :(得分:1)
foreach (explode('.', $variable) as $v) {
// do as you please with your $v here.
}
答案 2 :(得分:1)
使用具有名为“variable1”等的键的数组
$array = array();
list( $array['variable1'],$array['variable2'],$array['variable3']) = explode( '.', $variable );
然后:
for ($i = 1; $i <= 3; $i++) {
switch ($array['variable'.$i]) {
case "1": $array['variable'.$i] = 100; break;
case "2": $array['variable'.$i] = 200; break;
case "3": $array['variable'.$i] = 300; break;
}
}
然后,如果你真的需要将这些变量分开,你可以这样做:
foreach($array as $k=>$v){
$kk = $v;
}