0

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 } ?>

どうもありがとう

4

3 に答える 3

1

通常の配列を試してみませんか?

<?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;
  }
}
?>
于 2013-01-28T23:58:53.523 に答える
1

$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
    }
}
?>
于 2013-01-29T00:07:25.273 に答える
0

求めているものに可変変数を使用できます...

<?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 } 
}
于 2013-01-28T23:55:34.393 に答える