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 :: удалить пустые ячейки

 PHP.SU

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


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

> Без описания
sergoVL
Отправлено: 08 Января, 2016 - 14:14:21
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2015  


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




Подскажите как удалить пустые ячейки. При этом сохранив структуру таблицы.
Скачать файл: NEW.php
Скачан раз: 58
 
 Top
KAMEHb
Отправлено: 08 Января, 2016 - 18:33:48
Post Id


Новичок


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


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




sergoVL пишет:
Подскажите как удалить пустые ячейки. При этом сохранив структуру таблицы.

Вы опишите изначальную задачу, иначе совершенно ничего не понятно. Я, конечно, не профи, но код мягко говоря корявый и непонятно, что им пытаетесь реализовать. Для начала...массив не ассоциативный, можно прописать его так
А дальше там вообще чудеса начинаются...
 
 Top
Prizma
Отправлено: 08 Января, 2016 - 22:51:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


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




sergoVL пишет:
Подскажите как удалить пустые ячейки. При этом сохранив структуру таблицы.

т.е. у тебя есть HTML-таблица, из которой ты хочешь удалить ПУСТЫЕ ячейки. Каким именно образом?
Задача не ясна, куда должны исчезнуть пустые ячейки? что должно быть на их месте?

И да, очень лютая абракадабра в реализации...
(Добавление)
Запустил я это счастье и ужаснулся результату) У вас там явно лишний цикл, далее какая то охинея с выводом <tr> почему то он выводится в разных циклах, поэтому таблица и едет к чертям. Причем в шапке <tr> напрочь отсутствует.
Так вроде лучше:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //этот массив будем выводить
  3. $newmassiv = [
  4.     "bar",
  5.     "foo",
  6.     "hii",
  7.     "привет",
  8.     "",
  9.     "первая новая строка",
  10.     "вторая новая строка",
  11.     "третья новая строка",
  12.     "",
  13.     "я пятый массив и хочу во вторую строку",
  14.     "пятая новая строка",
  15.     "шестая новая строка",
  16.     "седьмая новая строка",
  17.     "восьмая новая строка",
  18.     "",
  19.     "",
  20.     "",
  21.     "девятая новая строка",
  22.     "десятая новая строка",
  23.     "",
  24.     "одиннадцатая новая строка",
  25.     ""
  26. ];
  27.  
  28.  
  29. echo "<table widht=300 border=1>";
  30. echo "<tr>";
  31. echo "<td>1-q</td>";
  32. echo "<td>2-q</td>";
  33. echo "<td>3-q</td>";
  34. echo "<td>4-q</td>";
  35. echo "<td>5-q</td>";
  36. echo "</tr>";
  37.  
  38.  
  39. $columns = 5; //кол-во столбцов
  40. $i = 0; // счетчик столбцов
  41. $td = '';
  42. foreach($newmassiv as $k => $el) {
  43.     // пропускаем пустые строки
  44.     if(empty($el)) {
  45.         continue;
  46.     }
  47.     $i++; // считаем сколько у нас ячеек в строке
  48.     // если ячеек больше чем надо, выводим строку таблицы
  49.     if($i > $columns) {
  50.         echo '<tr>'.$td.'</tr>';
  51.         // сбрасываем переменные
  52.         $td = '';
  53.         $i = 1;
  54.     }
  55.     /* ВАШ КОД */
  56.  
  57.     $patterns = "/вторая новая строка/Um";
  58.     $replacements = "ЖОЛПА";
  59.     $el = preg_replace($patterns, $replacements, $el);
  60.     //echo $newmassiv[++$k];
  61.    
  62.     /* КОНЕЦ ВАШЕГО КОДА */
  63.     $td .= '<td>'.$el.'</td>'; // создаем ячейку
  64. }
  65. if(!empty($td)) {
  66.     echo '<tr>'.$td.'</tr>';
  67. }
  68. echo '</table>';
  69.  
  70. ?>

(Отредактировано автором: 08 Января, 2016 - 23:12:27)

 
My status
 Top
sergoVL
Отправлено: 16 Января, 2016 - 13:10:38
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2015  


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




KAMEHb пишет:
sergoVL пишет:
Подскажите как удалить пустые ячейки. При этом сохранив структуру таблицы.

Вы опишите изначальную задачу, иначе совершенно ничего не понятно. Я, конечно, не профи, но код мягко говоря корявый и непонятно, что им пытаетесь реализовать. Для начала...массив не ассоциативный, можно прописать его так
А дальше там вообще чудеса начинаются...




Суть в том, чтобы при определении пустого массива цикл начинался с новой строки.
(Добавление)
Prizma пишет:
sergoVL пишет:
Подскажите как удалить пустые ячейки. При этом сохранив структуру таблицы.

т.е. у тебя есть HTML-таблица, из которой ты хочешь удалить ПУСТЫЕ ячейки. Каким именно образом?
Задача не ясна, куда должны исчезнуть пустые ячейки? что должно быть на их месте?

И да, очень лютая абракадабра в реализации...
(Добавление)
Запустил я это счастье и ужаснулся результату) У вас там явно лишний цикл, далее какая то охинея с выводом <tr> почему то он выводится в разных циклах, поэтому таблица и едет к чертям. Причем в шапке <tr> напрочь отсутствует.
Так вроде лучше:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //этот массив будем выводить
  3. $newmassiv = [
  4.     "bar",
  5.     "foo",
  6.     "hii",
  7.     "привет",
  8.     "",
  9.     "первая новая строка",
  10.     "вторая новая строка",
  11.     "третья новая строка",
  12.     "",
  13.     "я пятый массив и хочу во вторую строку",
  14.     "пятая новая строка",
  15.     "шестая новая строка",
  16.     "седьмая новая строка",
  17.     "восьмая новая строка",
  18.     "",
  19.     "",
  20.     "",
  21.     "девятая новая строка",
  22.     "десятая новая строка",
  23.     "",
  24.     "одиннадцатая новая строка",
  25.     ""
  26. ];
  27.  
  28.  
  29. echo "<table widht=300 border=1>";
  30. echo "<tr>";
  31. echo "<td>1-q</td>";
  32. echo "<td>2-q</td>";
  33. echo "<td>3-q</td>";
  34. echo "<td>4-q</td>";
  35. echo "<td>5-q</td>";
  36. echo "</tr>";
  37.  
  38.  
  39. $columns = 5; //кол-во столбцов
  40. $i = 0; // счетчик столбцов
  41. $td = '';
  42. foreach($newmassiv as $k => $el) {
  43.     // пропускаем пустые строки
  44.     if(empty($el)) {
  45.         continue;
  46.     }
  47.     $i++; // считаем сколько у нас ячеек в строке
  48.     // если ячеек больше чем надо, выводим строку таблицы
  49.     if($i > $columns) {
  50.         echo '<tr>'.$td.'</tr>';
  51.         // сбрасываем переменные
  52.         $td = '';
  53.         $i = 1;
  54.     }
  55.     /* ВАШ КОД */
  56.  
  57.     $patterns = "/вторая новая строка/Um";
  58.     $replacements = "ЖОЛПА";
  59.     $el = preg_replace($patterns, $replacements, $el);
  60.     //echo $newmassiv[++$k];
  61.    
  62.     /* КОНЕЦ ВАШЕГО КОДА */
  63.     $td .= '<td>'.$el.'</td>'; // создаем ячейку
  64. }
  65. if(!empty($td)) {
  66.     echo '<tr>'.$td.'</tr>';
  67. }
  68. echo '</table>';
  69.  
  70. ?>



Суть в том, чтобы при определении пустого массива цикл начинался с новой строки.
 
 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