2013-10-27 2 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.

Если я включаю <tr> в цикл в HTML, я получаю результаты, которые идут вниз (по вертикали) в одном столбце, и когда я исключаю из цикла <tr>, результаты все отходят в одну строку (по горизонтали) ,

Итак, я в основном забочусь только о числе столбцов, я хочу, чтобы они ограничивались 6-7.

Я не вижу логики достижения этого. Любая помощь будет вызвана.

Вот пример массива с данными я использую:http://pastebin.com/uDMeBJw6

Если шаблон двигатель причиняет вам неприятности, чтобы понять код, пожалуйста, дайте мне знать, и я постараюсь, чтобы преобразовать его в чистый пример PHP.

+1

Используйте по модулю как ' .... и то же самое, если условие для закрывающего тега tr. – busypeoples

ответ

1

МОИХ навыки 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

Смежные вопросы