【问题标题】:PHP Generate Column loop?PHP生成列循环?
【发布时间】:2014-07-03 19:02:16
【问题描述】:

我正在尝试在 html 中生成一个列循环。 这是常规代码,可以正常工作并以正确的格式输出我想要的所有内容。

<tr>
<td style="color:#<?php echo $ftstyle1; ?>"><div style="background-color:#<?php echo $bgstyle1; ?>"><?php echo $partnumber ?></div></td>
<td style="color:#<?php echo $ftstyle; ?>"><div style="background-color:#<?php echo $bgstyle; ?>"><?php echo $vendorpartnumber ?></div></td>
<td style="border:1px solid black;"><?php echo $cost ?></td>
<td style="border:1px solid black;"><?php echo $stock ?></td>
<td style="border:1px solid black;"><?php echo $wholesale ?></td>
<td style="border:1px solid black;"><?php echo $notes ?></td>
<td style="color:#<?php echo $ftstyle3; ?>"><div style="background-color:#<?php echo $bgstyle3; ?>"><?php echo $salesquotient_p ?></div></td>
<td style="border:1px solid black;"><?php echo $last7dayssum ?></td>
<td style="border:1px solid black;"><?php echo $last1day_n ?></td>
<td style="border:1px solid black;"><?php echo $last2day_n ?></td>
<td style="border:1px solid black;"><?php echo $last3day_n ?></td>
<td style="border:1px solid black;"><?php echo $last4day_n ?></td>
<td style="border:1px solid black;"><?php echo $last5day_n ?></td>
<td style="border:1px solid black;"><?php echo $last6day_n ?></td>
<td style="border:1px solid black;"><?php echo $last7day_n ?></td>

我正在尝试将 echo $last1day_n、$last2day_n 等替换为生成这些列的循环。这是我迄今为止尝试过的。

<td style="border:1px solid black;"><?php echo $cost ?></td>
<td style="border:1px solid black;"><?php echo $stock ?></td>
<td style="border:1px solid black;"><?php echo $wholesale ?></td>
<td style="border:1px solid black;"><?php echo $notes ?></td>
<td style="color:#<?php echo $ftstyle3; ?>"><div style="background-color:#<?php echo $bgstyle3; ?>"><?php echo $salesquotient_p ?></div></td>

<?php for ($i = 1; $i <= 7; $i++) {
$dd = "$" . "last" . strval($i) . "day_n";
?>
<td style="border:1px solid black;"><?php echo $dd ?></td>
<?php }  ?>

这不起作用。它输出 "$last1day_n", "$last2day_n", ... "$last7day_n" 而不是我试图回显的正确整数值。这是循环列的正确方法还是我以错误的方式接近这个?

【问题讨论】:

  • 为什么不把$last*day_n 值放到一个数组中呢?这将更容易使用。

标签: php html loops


【解决方案1】:

您可以尝试从 $dd 值中删除“$”,然后在引用它时添加一个额外的“$”。

$dd = "last" . strval($i) . "day_n";

echo $$dd;

“$$dd”基本上说取变量“dd”的值命名的变量的值。因此,您将 $dd 设置为您想要的变量名称,然后获取该变量的值。这在 PHP 中称为“变量”:http://www.php.net/manual/en/language.variables.variable.php

【讨论】:

  • 我会为答案 +1,但我不能让自己支持涉及可变变量的解决方案。这只是为了补偿 OP 的糟糕设计,这意味着掩盖真正糟糕的设计是更糟糕的设计......
  • 我同意原始代码很难看,但变量变量似乎正是发帖者所期望的。不能在一个答案中教授好的软件设计。 ;)
【解决方案2】:

$$dd 不起作用。 我用这个使它工作:

<?php 
   for ($i = 1; $i <= 7; $i++) {
       $dd = ${'last' . $i . 'day_n'};
       echo $dd;
   }
?>

来源:http://forums.asmallorange.com/topic/5427-php-convert-string-to-variable/

【讨论】:

  • 谢谢!我调整了代码,得到了与此类似的东西,效果很好。
猜你喜欢
  • 2011-07-18
  • 1970-01-01
  • 2020-08-07
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2018-12-01
  • 2020-05-19
相关资源
最近更新 更多