2013-10-27 60 views
0

我試圖用循環創建一個表。列數是重要的,它應該是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例子。

+1

使用跳舞模像<?PHP的,如果($ ROWNUMBER%6 == 0)打印「」 ......和如果對於結束tr標記有條件,則相同。 – busypeoples

回答

1

MY 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 :)

+0

這會產生與將''放入循環中相同的效果:\ – Aborted

+0

它不應該!這個想法是隻在每7個(或6個)塊中有''。我可能在模板邏輯(塊)方面做了一些錯誤,如果它確實如此:( – frnhr

+0

對不起,它工作!這是我的錯誤,我對此表示歉意。 – Aborted