2009-09-09 35 views
1

我想打一个有条件的声明,如果确实提供#12这个基本PHP的问题,我认为答案将涉及阵列

if($get_['b']=="1") { 

$offer1a=$offer1XXX; 
$offer1e=$offer1YYY; 

$offer2a=$offer2XXX; 
$offer2e=$offer2YYY; 

$offer3a=$offer3XXX; 
$offer3e=$offer3YYY; 

$offer4a=$offer4XXX; 
$offer4e=$offer4YYY; 

} 

一路。写出来似乎很多。还有其他一些值,比如$ offer1b,我想单独留下。什么是最好的方式来做到这一点。我想一个数组,但我不清楚如何完成它。

+0

感谢你们三位! – 2009-09-09 23:32:28

回答

1

我敢肯定,有一千多的优化,但是从字面上你问,你做什么可以使用一个for循环中作为这样的:

if ($_GET['b'] == 1) { 
    for ($k = 1; $k <= 12; $k++) { 
    ${"offer${k}a"} = ${"offer${k}XXXX"}; 
    ${"offer${k}e"} = ${"offer${k}YYYY"}; 
    } 
} 

更好的解决方案是使用一个阵列,而不是所有的这些单个变量的:

for ($k = 1; $k <= 12; $k++) { 
    $offers[$k]['a'] = $offers[$k]['XXXX']; 
    $offers[$k]['e'] = $offers[$k]['YYYY']; 
} 
+0

感谢给你解决方案的其他两个人,这个工作得很好。我正在慢慢失去对阵列的恐惧。 – 2009-09-09 23:31:51

0

如果你要改变$offer到一个数组,你可以做这样的事情:

if ($get_['b'] == "1") { 
    for ($i = 1; i <= 12; i++) { 
     $offer[$i]['a'] = $offer[$i]['XXX']; 
     $offer[$i]['e'] = $offer[$i]['YYY']; 
    } 
} 
0

数组是您的朋友:

for ($i = 1; $i <= 12; ++$i) { 
    $offer[$i]['a'] = $offer[$i]['XXX']; 
    $offer[$i]['e'] = $offer[$i]['YYY']; 
} 

没有看到该要约变量是如何最初填充,我不禁更远。也许是这样的:

$offer = array(
    1 => array(
     'a' => "something", 
     'b' => "somethingElse", 
     'XXX' => "blah", 
     'YYY' => "foo" 
    ), 
    array(
     'a' => '...' 
    ) 
);