我想要的东西有点难以解释。因此,为任何混淆道歉。我正在检索我为我的产品创建的一组属性(总共 16 个)。而这 16 个属性可以根据类型分为 4 列(A、B、C、D)。所以我想创建一个以 A、B、C、D 为标题的表格。然后我想显示相关列的标签和数据。下面将给你一个想法,我想要什么。
<table>
<tr>
<td>heading-A</td>
<td>heading-B</td>
<td>heading-C</td>
<td>heading-D</td>
</tr>
<tr>
<td>label-A</td>
<td>Data-A</td>
<td>label-B</td>
<td>Data-B</td>
<td>label-C</td>
<td>Data-C</td>
<td>Label-D</td>
<td>Data-D</td>
</tr>
<tr>...and so on
</table
*不必担心将标签-A 和数据-A 放在标题-A 下。我可以使用 CSS 来实现。
我知道我可以通过在每个相关表中直接调用属性名称(即 $_product->getAttribute)来做到这一点。但问题是有几个属性集,每个属性集都有不同的属性(即每个集有 16 个属性组不同)。
因此,我没有创建一个巨大的表并单独调用值,而是尝试使用伪代码来实现这一点,这将是一种更简单和智能的方式。
到目前为止,我已经尝试过这样的:
$attributes = $_product->getAttributes();
<table>
<tr>
<td>Sight</td>
<td>Nose</td>
<td>Palate</td>
<td>Finish</td>
</tr>
<?php foreach($attributes as $attribute):?>
<?php if($attribute->getIsVisibleOnFront() && $attribute->getIsUserDefined()):?>
<tr>
<?php if(stripos($attribute->getAttributeCode(), "_sight")!=0):?><td><th class="data"><?php echo $attribute->getFrontend()->getLabel(); ?></th></td>
<td class="data"><?php echo $attribute->getFrontend()->getValue($_product); continue;?></td><?php endif; ?>
<?php if(stripos($attribute->getAttributeCode(), "_nose")!=0): ?><td><th class="data"><?php echo $attribute->getFrontend()->getLabel(); ?></th></td>
<td class="data"><?php echo $attribute->getFrontend()->getValue($_product); continue;?></td><?php endif; ?>
<?php if(stripos($attribute->getAttributeCode(), "_palate")!=0): ?><td><th class="data"><?php echo $attribute->getFrontend()->getLabel(); ?></th></td>
<td class="data"><?php echo $attribute->getFrontend()->getValue($_product); continue;?></td><?php endif;?>
<?php if(stripos($attribute->getAttributeCode(), "_finish")!=0): ?><td><th class="data"><?php echo $attribute->getFrontend()->getLabel(); ?></th></td>
<td class="data"><?php echo $attribute->getFrontend()->getValue($_product); continue;?></td><?php endif;?>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</table>
但这在一个列中给了我所有的输出。我不确定如何按照我想要的方式将它们分成 4 列。有人可以帮我吗?