За последние 24 часа нас посетили 60383 программиста и 1771 робот. Сейчас ищет 2231 программист ...

Вывод в html таблицу массивов

Тема в разделе "PHP для новичков", создана пользователем sense1, 29 июн 2017.

  1. sense1

    sense1 Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    35
    Симпатии:
    1
    Привет форумчани. Столкнулся с проблемой, нужно вывести таблицу html
    вот таким образом https://www.screencast.com/t/cXSD2vxn
    Когда список заголовков и текстов равен одному значению( заголовков-5,текстов -5), код работает как нужно, а как вывести массивы в таблицу если ихние count не равны одному числу? если ихние count не равны, то получаем в таблице пустой column, тоесть если есть 7 заголовков и 4 текста, то выведется 7 заголовков и 4 текста ,а три колонки будут пусты.

    Как это можно подогнать или обрезать массивы, чтобы ихние count были равны и давали правильный вывод?

    Делаю аналог вот этого сервиса http://tools.yaroshenko.by/adv.php

    Код
    PHP:
    1. $titleRes = array();
    2.                 $textRes = array();
    3.                 $titleR = array();
    4.                 $phrases = explodeTextarea($post['phrases']);// массив фраз
    5.                 $titles = explodeTextarea($post['titles']); //массив заголовков
    6.                 $titles_count = count($titles);
    7.                 $text = explodeTextarea($post['text']);// массив текстов
    8.                 $text_count = count($text);
    9.                 foreach ($phrases as $phrase) {
    10.                     foreach ($titles as $title) {
    11.                         if (strstr($title, '{keyword}')) {
    12.                             $pos = strpos($title, '}');
    13.                             $titleR[] = trim($phrase);
    14.                             $title = substr($title, $pos + 1);
    15.                             $a = allWordsWithLower($phrase);
    16.                             $titleRes[] = trim($a . $title);
    17.                         }
    18.                         if (strstr($title, '{Keyword}')) {
    19.                             $pos = strpos($title, '}');
    20.                             $titleR[] = trim($phrase);
    21.                             $title = substr($title, $pos + 1);
    22.                             $a = starts_with_upper($phrase);
    23.                             $titleRes[] = trim($a . $title);
    24.                         }
    25.                         if (strstr($title, '{KeyWord}')) {
    26.                             $pos = strpos($title, '}');
    27.                             $titleR[] = trim($phrase);
    28.                             $title = substr($title, $pos + 1);
    29.                             $a = allWordsWithUpper($phrase);
    30.                             $titleRes[] = trim($a . $title);
    31.                         }
    32.                     }
    33.                 }
    34.                       foreach ($phrases as $phrase) {
    35.                         foreach($text as $string) {
    36.                             if (strstr($string, '{keyword}')) {
    37.                                 $pos = strpos($string, '}');
    38.                                 $string = substr($string, $pos + 1);
    39.                                 $a = allWordsWithLower($phrase);
    40.                                 $textRes[] = trim($a . $string);
    41.                             }
    42.                             if (strstr($string, '{Keyword}')) {
    43.                                 $pos = strpos($string, '}');
    44.                                 $string = substr($string, $pos + 1);
    45.                                 $a = starts_with_upper($phrase);
    46.                                 $textRes[] = trim($a . $string);
    47.                             }
    48.                             if (strstr($string, '{KeyWord}')) {
    49.                                 $pos = strpos($string, '}');
    50.                                 $string = substr($string, $pos + 1);
    51.                                 $a = allWordsWithUpper($phrase);
    52.                                 $textRes[] = trim($a . $string);
    53.                             }
    54.                         }
    55.                 }
    56.                 $result = array_combine($titleRes,$textRes);

    И таблица в которую всё это идёт

    HTML:
    1. <table class="table table-bordered">
    2.                         <thead>
    3.                         <tr>
    4.                             <th>Ключевая фраза</th>
    5.                             <th>Заголовок</th>
    6.                             <th>Size</th>
    7.                             <th>Текст</th>
    8.                             <th>Size</th>
    9.                         </tr>
    10.                         </thead>
    11.                         <tbody>
    12.                         <?$i = 0;?>
    13.                             <?foreach( $result as $key => $value):?>
    14.                                 <tr>
    15.                                     <td><?=$titleR[$i]; ?></td>
    16.                                     <td><?=$key;?></td>
    17.                                     <?if(mb_strlen($key) > 35){
    18.                                         echo '<td style="background-color:#FA8072">'. mb_strlen($key) . '</td>';
    19.                                     }
    20.                                     else{
    21.                                         echo '<td>'.mb_strlen($key).'</td>';
    22.                                     }
    23.                                     ?>
    24.                                     <td><?=$value?></td>
    25.                                     <?if(mb_strlen($value) > 75){
    26.                                         echo '<td style="background-color:#FA8072">'. mb_strlen($value) . '</td>';
    27.                                     }
    28.                                     else{
    29.                                         echo '<td>'.mb_strlen($value).'</td>>';
    30.                                     }
    31.                                     ?>
    32.                                 </tr>
    33.                                 <?$i++;?>
    34.                         <? endforeach;?>
    35.                         </tbody>
    36.                     </table>
     
    #1 sense1, 29 июн 2017
    Последнее редактирование: 29 июн 2017
  2. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    А что такое explodeTextarea?
     
  3. sense1

    sense1 Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    35
    Симпатии:
    1
    Функция которая разбивает textarea построково и сохраняет в массив.
     
  4. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Покажите код этой функции.