【问题标题】:Create a loop using associative arrays使用关联数组创建循环
【发布时间】:2013-01-12 10:58:45
【问题描述】:

我想把它放在一个循环中,因为它需要重复 6 次,使用可变变量是否真的是一种不好的做法?我需要关联数组吗?

基本上变量里面的'c1'需要逐渐变成'c2', 'c3'...等

<?php if ($pm_c1_djwd !== '') { ?>

<div>
   <span style="width:<?php echo $pm_width_c1;?>%"></span>
   <span><?php echo $pm_description_c1; ?></span>
</div>

<?php } ?>

非常感谢

【问题讨论】:

  • 了解这些变量的来源会有所帮助。
  • 你可以试试 var_dump($pm_c1_djwd) 并在这里发布
  • 为什么?变量正在回显正确的数据,我只需要知道如何将每个变量末尾的数字动态更改为“_c2”、“_c3”、“_c4”,这样我就不必重复相同的代码 6 次
  • 为什么要从 6*3 变量开始?只需使用嵌套数组。
  • 对。任何时候你觉得有必要这样做,这表明你应该使用普通的索引数组。

标签: php variables loops associative-array


【解决方案1】:

你可以为你所问的事情使用可变变量......

<?php
$i = 0;
while( $i < 6 ){
$i ++;

$variable = "pm_c".$i."_djwd";
$variable2 = "pm_description_c".$i."";

 if (isset($$variable) && $$variable != '') { ?>

<div>
   <span style="width:<?php echo $$variable;?>%"></span>
   <span><?php echo $$variable2; ?></span>
</div>

<?php } 
}

【讨论】:

  • 我认为这仍然是我的情况的最佳解决方案,并且效果很好。谢谢大家
【解决方案2】:

为什么不试试常规数组?

<?php
// Warning: Typed raw in the textarea
$pm_width = array(100, 100, 100, 100, 100, 100);

$pm_description = array(
  "Gizmo",
  "Doodad",
  "Widget",
  "Dohicky",
  "Thing-me-a-bob",
  "Marvelous toy my father gave to me."
);

$pm_c1_djwd = "Snod";

if ($pm_c1_djwd !== '') {

  for ($i = 0; $i < count($pm_description); $i++) {
    $width = $pm_width[$i];
    $desc = $pm_description[$i];

    echo "<div>";    
    echo "<span style='width:${width}%'>$desc</span>";     
    echo '</div>';
    echo PHP_EOL;
  }
}
?>

【讨论】:

    【解决方案3】:

    不要为每个字段(如$pm_description_c1..c2 等)设置一个变量,而是将它们放在一个关联数组中:

    $pms = array(
        array('description' => 'your description', 'width' => '123px', 'djwd' = 'what'),
        array('description' => 'Second item', 'width' => '123px', 'djwd' = '')
    );
    

    然后遍历它们:

    <?php
    foreach ($pms as $pm) {
        if ($pm['djwd' !== '') {
        ?>
            <div>
                <span style="width:<?php echo $pm['width'];?>%"></span>
                <span><?php echo $pm['description']; ?></span>
            </div>
        <?php
        }
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2011-04-29
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      相关资源
      最近更新 更多