【问题标题】:basic php problem I think answer will involve arrays基本的php问题我认为答案将涉及数组
【发布时间】:2009-09-09 23:07:30
【问题描述】:

我想做一个条件 if 语句来做这个

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

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

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

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

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

}

一直提供#12。好像要写很多。还有其他值,例如 $offer1b,我想不理会它。最好的方法是什么。我认为是一个数组,但我不清楚如何完成它。

【问题讨论】:

    标签: php arrays


    【解决方案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'];
    }
    

    【讨论】:

    • 感谢提供解决方案的另外两个人,这个工作得很好。我正在慢慢失去对数组的恐惧。
    【解决方案2】:

    如果您要将$offer 更改为数组,您可以执行以下操作:

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

    【讨论】:

      【解决方案3】:

      数组是你的朋友:

      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' => '...'
          )
      ); 
      

      【讨论】:

        猜你喜欢
        • 2014-05-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-01
        • 1970-01-01
        相关资源
        最近更新 更多