我正在尝试使用循环创建一个表。列的数量才是最重要的,应该是6-7列,而行数则无关紧要。
这里的问题是,我只需要从一个数组创建这个数组,该数组具有一组图像名称,我需要通过表来显示这些名称。
这是PHP:
if ($mode == 'skins')
{
$player_gender = ($player_data['playerGender'] == true) ? 'male' : 'female';
$skins_array = $samp->skin('small', false, $player_gender);
$index_counter = 0;
foreach ($skins_array as $skin_img)
{
$template->assign_block_vars('skinrow', array(
'IMAGE_PATH' => $root_path . $config['skins_path'] . '/Skin_' . $skin_img . '.png',
));
}
},这是HTML:
<div class="container">
<table>
<!-- BEGIN skinrow -->
<tr>
<td><a href="{skinrow.IMAGE_PATH}"><img src="{skinrow.IMAGE_PATH}" /></a></td>
</tr>
<!-- END skinrow -->
</table>
</div>本例中使用的模板引擎来自phpBB。
如果我在HTML中的循环中包含了<tr>,那么我的结果都会下降(垂直)在一列中,当我将<tr>从循环中排除在外时,结果都会放在一行(水平)中。
所以,我基本上只关心列的数量,我希望那些限制在6-7。
我看不出实现这一目标的逻辑。任何帮助都会被认可。
这里是一个包含我正在使用的数据的示例数组: http://pastebin.com/uDMeBJw6
如果模板引擎给您带来了理解代码的麻烦,请告诉我,我将尝试将其转换为一个纯PHP示例。
发布于 2013-10-27 14:31:27
我的phpBB技能是不存在的,但也许这会起作用:
模板:
<div class="container">
<table>
<tr>
<!-- BEGIN skinrow -->
{skinrow.NEW_TR} <!-- **EDITED** -->
<td><a href="{skinrow.IMAGE_PATH}"><img src="{skinrow.IMAGE_PATH}" /> </a></td>
<!-- END skinrow -->
</tr>
</table>
</div>PHP (只循环):
$counter = 0;
foreach ($skins_array as $skin_img)
{
$new_tr = ($counter && ($counter % 7 === 0)) ? '</tr><tr>' : ''; // **EDITED**
$template->assign_block_vars('skinrow', array(
'NEW_TR' => $new_tr,
'IMAGE_PATH' => $root_path . $config['skins_path'] . '/Skin_' . $skin_img . '.png',
));
}代码是未经测试的,这只是一个想法。
..。而且,做for可能比与foreach和$counter跳舞更干净:)
https://stackoverflow.com/questions/19619081
复制相似问题