我试图找到一种在foreach循环中实现计数器初始变量的方法。所以我需要的是这样的东西:
<?php
$maxAttributeSections = 15;
$i = 1;
?>
<table class="border">
<?php foreach ($this->{'attributeSectionAttribute' . $i} as $label => $value): ?>
<tr class="attribute-pane">
<td class="attribute-pane-title" width="26%"><?= $label; ?></td>
<td class="attribute-pane-title border" width="74%"> <?= $value["text"]; ?></td>
</tr>
<?php $i++; endforeach; ?>
</table>
我需要将该attributeSectionAttribute变量循环15次。所以是attributeSectionAttribute1,attributeSectionAttribute2,attributeSectionAttribute3 ... 15。
我有点被困,所以感谢任何帮助。
答案 0 :(得分:0)
<?php
foreach ($this->{'attributeSectionAttribute' . $i} as $label => $value):
if($i == $maxAttributeSections )
break; //this will break the loop once it reaches 15
?>
<tr class="attribute-pane">
....
答案 1 :(得分:0)
只是添加简单的条件
<table class="border">
<?php
$arr = $this->{'attributeSectionAttribute' . $i};
foreach ($arr as $label => $value):
?>
<tr class="attribute-pane">
<td class="attribute-pane-title" width="26%"><?= $label; ?></td>
<td class="attribute-pane-title border" width="74%"> <?= $value["text"]; ?></td>
</tr>
<?php
$i++;
//JUST ADD SIMPLE CONDITION
if($i > $maxAttributeSections){
break;
}
endforeach;
?>
</table>
答案 2 :(得分:0)
您无法在foreach()
条件内增加 ,因此请使用for()
循环: -
<?php for ($i = 1; $i <= 15; $i++) : ?>
<table class="border">
<?php foreach ($this->{'attributeSectionAttribute' . $i} as $label => $value): ?>
<tr class="attribute-pane">
<td class="attribute-pane-title" width="26%"><?= $label; ?></td>
<td class="attribute-pane-title border" width="74%"><?= $value["text"]; ?> </td>
</tr>
<?php endforeach; ?>
</table>
<?php endfor; ?>
答案 3 :(得分:0)
您应该使用for()
循环代替......
<table class="border">
<?php
for ( $i = 1; $i<= 15 $i++ ):
$label = 'attributeSectionAttribute' . $i; // Correct this
$value = $this->{'attributeSectionAttribute' . $i};
?>
<tr class="attribute-pane">
<td class="attribute-pane-title" width="26%"><?= $label; ?></td>
<td class="attribute-pane-title border" width="74%"> <?= $value["text"]; ?></td>
</tr>
<?php endfor; ?>
</table>
我不确定$label
应该显示什么,因此我将其保留为字段名称,可能是您必须更改此内容以适合您的后续操作。< / p>
答案 4 :(得分:0)
所以,问题是初始值根本没有增加。 $ this-&gt; {'attributeSectionAttribute'。 $ i}始终是$ this-&gt; attributeSectionAttribute1,因为该变量不在foreach主体中。我通过添加for循环并将foreach放入其中来解决了这个问题:
<?php for ($i = 1; $i <= 15; $i++) : ?>
<table class="border">
<?php foreach ($this->{'attributeSectionAttribute' . $i} as $label => $value): ?>
<tr class="attribute-pane">
<td class="attribute-pane-title" width="26%"><?= $label; ?></td>
<td class="attribute-pane-title border" width="74%"><?= $value["text"]; ?> </td>
</tr>
<?php endforeach; ?>
</table>
<?php endfor; ?>