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
Форумы портала PHP.SU :: Версия для печати :: Вывод текста в таблицу из 5 колонок
Форумы портала PHP.SU » Разное » Прочее » Вывод текста в таблицу из 5 колонок

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

1. Lexas84 - 09 Сентября, 2018 - 05:32:56 - перейти к сообщению
Мне нужно что бы из текстового файла где перечислен список номеров телефонов информация выводилось в таблицу из пяти колонок я просто вообще не шарю (программировал еще в школе на паскале потом забросил)
вычитал и поставил такой код
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.    # Путь к файлу
  3.    $file_name = "имя файла.csv";
  4.    
  5.    # Считываем информацию по строкам
  6.    $data = file( $file_name );
  7. ?>
  8. <table style="font: 26px Times New Roman"; border="1">
  9. <?php
  10.    # В цикле обходим массив данных
  11.    foreach( $data as $value ):
  12.    
  13.        # Разбиваем строку по |
  14.        $value = explode( ";", $value );
  15. ?>
  16.     <tr>
  17.         <td><?=$value[0]?></td>
  18.         <td><?=$value[1]?></td>
  19.         <td><?=$value[2]?></td>
  20.         <td><?=$value[3]?></td>
  21.         <td><?=$value[4]?></td>
  22.     </tr>
  23. <?php
  24.    endforeach;
  25. ?>
  26. </table>

файл такого плана:
89314444444;89345555555;89665555555;89816666666;89925555555
89324444444;89382222222;89694444444;89845555555;89942222222
89326666666;89664444444;89813333333;89865555555;89945555555
Но перед этим мне приходится его преобразовывать через excel
Как сразу использовать такой текст
89664444444
89945555555
89694444444
89345555555
89845555555
89865555555
89925555555
89665555555
89382222222
89324444444
89326666666
89314444444
89942222222
89816666666
89813333333

Понимаю что вопрос тупой и банальный но не могу найти ответ
Понимаю что надо учить но для того что бы начинать с нуля сейчас нет времени
2. Vladimir Kheifets - 09 Сентября, 2018 - 16:35:45 - перейти к сообщению
Добрый день!
Попробуйте так:
Спойлер (Отобразить)
Удачи!
3. Lexas84 - 10 Сентября, 2018 - 20:22:15 - перейти к сообщению
Большое спасибо
(Добавление)
работает
но если кол-во не кратно 5 перед таблицей выдает
Notice: Undefined offset: 423 in /var/www/vipnomer/data/www/xn--2 6-dlcmoygiho.xn--p1ai/1000-tp700 .php on line 55

Notice: Undefined offset: 424 in /var/www/vipnomer/data/www/xn--2 6-dlcmoygiho.xn--p1ai/1000-tp700 .php on line 55
4. teleoperator27 - 11 Сентября, 2018 - 00:59:19 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.    $file_name = "имя файла.csv";
  3.    $data = file( $file_name );
  4. ?>
  5. <table style="font: 26px Times New Roman"; border="1">
  6. <?PHP
  7.    foreach( $data as $value ):
  8.        $value = explode( ";", $value );
  9.          foreach( $value as $v ):
  10. ?>
  11.     <tr>
  12.         <td><?=$v[0]?></td>
  13.         <td><?=$v[1]?></td>
  14.         <td><?=$v[2]?></td>
  15.         <td><?=$v[3]?></td>
  16.         <td><?=$v[4]?></td>
  17.     </tr>
  18. <?PHP
  19.        endforeach;
  20.    endforeach;
  21. ?>
  22. </table>
5. Lexas84 - 11 Сентября, 2018 - 04:21:27 - перейти к сообщению
teleoperator27 пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.    $file_name = "имя файла.csv";
  3.    $data = file( $file_name );
  4. ?>
  5. <table style="font: 26px Times New Roman"; border="1">
  6. <?PHP
  7.    foreach( $data as $value ):
  8.        $value = explode( ";", $value );
  9.          foreach( $value as $v ):
  10. ?>
  11.     <tr>
  12.         <td><?=$v[0]?></td>
  13.         <td><?=$v[1]?></td>
  14.         <td><?=$v[2]?></td>
  15.         <td><?=$v[3]?></td>
  16.         <td><?=$v[4]?></td>
  17.     </tr>
  18. <?PHP
  19.        endforeach;
  20.    endforeach;
  21. ?>
  22. </table>


что то пошло не так он считывает первую цифру от номера и выводит в первый столбец вторую во второй .... пятую в пятый!! такая таблица
8 9 3 1 4
8 9 3 1 4
8 9 3 1 4

надо что бы файл из n считало в одномерный массив A из n элементов и вывело в таблицу
из 5 ти колонок
A(0) A(1) A(2) A(3) A(4)
A(5) (A6) ...........
..............A(n).
как то так
(Добавление)
Vladimir Kheifets пишет:
Добрый день!
Попробуйте так:
Спойлер (Отобразить)
Удачи!

Большое спасибо
(Добавление)
работает
но если кол-во не кратно 5 перед таблицей выдает
Notice: Undefined offset: 423 in /var/www/vipnomer/data/www/xn--2 6-dlcmoygiho.xn--p1ai/1000-tp700 .php on line 55

Notice: Undefined offset: 424 in /var/www/vipnomer/data/www/xn--2 6-dlcmoygiho.xn--p1ai/1000-tp700 .php on line 55
6. teleoperator27 - 11 Сентября, 2018 - 12:12:26 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file_name = "имя файла.csv";
  3. $data      = file( $file_name );
  4. function array_chunk_assoc($array, $n = 5)
  5. {
  6.         $i         = 1;
  7.         $j         = 0;
  8.         $new_array = array();
  9.         foreach ($array as $k => $v) {
  10.                 $new_array[$j][$i] = $v;
  11.                 if (($k + 1) % $n == 0) {
  12.                         $i = 0;
  13.                         $j++;
  14.                 }
  15.  
  16.                 $i++;
  17.         }
  18.         return $new_array;
  19. }
  20. $array = array_chunk_assoc($data, 5);
  21. ?>
  22.  
  23. <table style="font: 26px Times New Roman;" border="1">
  24.         <?PHP
  25.                 foreach ($array as $value): ?>
  26.                         <tr>
  27.                                 <td><?=$value[1]?></td>
  28.                                 <td><?=$value[2]?></td>
  29.                                 <td><?=$value[3]?></td>
  30.                                 <td><?=$value[4]?></td>
  31.                                 <td><?=$value[5]?></td>
  32.                         </tr>
  33.         <?PHP
  34.                 endforeach?>
  35. </table>
7. Lexas84 - 13 Сентября, 2018 - 11:24:08 - перейти к сообщению
teleoperator27 пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file_name = "имя файла.csv";
  3. $data      = file( $file_name );
  4. function array_chunk_assoc($array, $n = 5)
  5. {
  6.         $i         = 1;
  7.         $j         = 0;
  8.         $new_array = array();
  9.         foreach ($array as $k => $v) {
  10.                 $new_array[$j][$i] = $v;
  11.                 if (($k + 1) % $n == 0) {
  12.                         $i = 0;
  13.                         $j++;
  14.                 }
  15.  
  16.                 $i++;
  17.         }
  18.         return $new_array;
  19. }
  20. $array = array_chunk_assoc($data, 5);
  21. ?>
  22.  
  23. <table style="font: 26px Times New Roman;" border="1">
  24.         <?PHP
  25.                 foreach ($array as $value): ?>
  26.                         <tr>
  27.                                 <td><?=$value[1]?></td>
  28.                                 <td><?=$value[2]?></td>
  29.                                 <td><?=$value[3]?></td>
  30.                                 <td><?=$value[4]?></td>
  31.                                 <td><?=$value[5]?></td>
  32.                         </tr>
  33.         <?PHP
  34.                 endforeach?>
  35. </table>

работает. но опять если количество строк не кратно 5 то выдает ошибки только на этот раз в самой таблице. может перед выводом значения сделать проверку если оно отлично от нуля то его выводить иначе пропустить??
8. Lexas84 - 13 Сентября, 2018 - 11:29:23 - перейти к сообщению
вот такая ошибка
9. difight - 13 Сентября, 2018 - 12:02:59 - перейти к сообщению
isset()
10. teleoperator27 - 13 Сентября, 2018 - 12:05:21 - перейти к сообщению
Lexas84 пишет:
может перед выводом значения сделать проверку если оно отлично от нуля то его выводить иначе пропустить??
ну сделай, кто мешает
PHP:
скопировать код в буфер обмена
  1.         <?PHP foreach ($array as $value): ?>
  2.                         <tr>
  3.                                 <td><?if(isset($value[1])) echo $value[1]?></td>
  4.                                 <td><?if(isset($value[2])) echo $value[2]?></td>
  5.                                 <td><?if(isset($value[3])) echo $value[3]?></td>
  6.                                 <td><?if(isset($value[4])) echo $value[4]?></td>
  7.                                 <td><?if(isset($value[5])) echo $value[5]?></td>
  8.                         </tr>
  9.         <?PHP endforeach?>
11. Lexas84 - 14 Сентября, 2018 - 00:05:08 - перейти к сообщению
Огромное спасибо!! Всё работает!!

 

Powered by ExBB FM 1.0 RC1