使用一个switch语句更改变量值

时间:2015-02-19 14:55:21

标签: php for-loop switch-statement

有没有办法通过多个变量并使用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循环中只使用一个?

3 个答案:

答案 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;
}