Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод в html таблицу массивов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
sense1
Отправлено: 29 Июня, 2017 - 14:04:31
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




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

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

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


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


И таблица в которую всё это идёт
CODE (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>
  37.  
 
 Top
Vladimir Kheifets
Отправлено: 29 Июня, 2017 - 16:27:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Добрый день! Вы обязательно должны находить пары значений title/text и только при условии их существования дописывать значения в массивы $titleRes и $textRes. К сожалению, так как это сделано сейчас, никакими “обрезаниями” и “заплатками” Вы ничего не сможете сделать.

(Отредактировано автором: 30 Июня, 2017 - 16:54:58)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB