Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2013, 11:53   #1
Tyoma5891
Пользователь
 
Регистрация: 16.08.2013
Сообщений: 54
По умолчанию Создание таблицы с использованием пробелов и других символов

Здравствуйте!
у меня возникла такая задача, необходимо в конечном итоге получить такого вида таблицу:

|----------users1---------|----------users2---------|----------users3----|
|----------------- 1------ |------------------2----- |--------------- 3---|
| ----------5------------- |-------- 6-------------- |---------- 7 --------|

данные в каждую ячейку получаем некой функцией rashet($i, $j), понимаю что проще всего делать подобные вещи через str_pad но не соображу как, вот пытался делать так:
PHP код:
for ($i 1$i <= $max$i++)
{
       
        foreach (
$arr as $$j)
        {
                echo 
'|' str_pad(rashet($i$j), 20);
        }
       

но не то да и как сделать "шапку" таблицы тоже не пойму как?
Заранее спасибо.
Tyoma5891 вне форума Ответить с цитированием
Старый 16.08.2013, 12:25   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

в что - html уже не рулит?
ADSoft вне форума Ответить с цитированием
Старый 16.08.2013, 12:26   #3
Tyoma5891
Пользователь
 
Регистрация: 16.08.2013
Сообщений: 54
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
в что - html уже не рулит?
не мне просто нужно выводить эту таблицу в консоль...
Tyoma5891 вне форума Ответить с цитированием
Старый 16.08.2013, 14:02   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Реализация может и не фонтан, конечно – но таблица в консоли получается "а-ля MySQL-консоль":
PHP код:
// 10, 20, 35, 25 – длина ячеек таблицы
$table_headers = array('Id' => 10'Title' => 20'About' => 35'Category' => 25);
$table_content = array(
    array(
        
'id' => 1,
        
'title' => 'Title 1',
        
'about' => 'About Title 1',
        
'category' => 'Category 1'
    
),
    array(
        
'id' => 2,
        
'title' => 'Title 2',
        
'about' => 'About Title 2',
        
'category' => 'Category 2'
    
),
    array(
        
'id' => 3,
        
'title' => 'Title 3',
        
'about' => 'About Title 3',
        
'category' => 'Category 3'
    
)
);

// линия-разделитель
$str_line $output '';
foreach (
$table_headers as $value) {
    
$str_line .= '+' str_pad('-'$value'-');
}
$str_line .= '+' PHP_EOL;

$output .= $str_line;

// заголовки таблицы
foreach($table_headers as $key => $value){
    
$output .= '| ' str_pad($key, ($value 1));
}
$output .= '|' PHP_EOL $str_line;

// контент таблицы
$cell_sizes array_values($table_headers);// размеры ячеек с контентом
foreach ($table_content as $value) {
    
$values array_values($value);
    for(
$i 0$i count($cell_sizes); $i++){
        
$output .= '| ' str_pad($values[$i], ($cell_sizes[$i] - 1));
    }
    
$output .= '|' PHP_EOL;
}
$output .= $str_line;

echo 
$output
Вывод в консоли:
Код:
$ php -f index.php
+----------+--------------------+-----------------------------------+-------------------------+
| Id       | Title              | About                             | Category                |
+----------+--------------------+-----------------------------------+-------------------------+
| 1        | Title 1            | About Title 1                     | Category 1              |
| 2        | Title 2            | About Title 2                     | Category 2              |
| 3        | Title 3            | About Title 3                     | Category 3              |
+----------+--------------------+-----------------------------------+-------------------------+
Andkorol вне форума Ответить с цитированием
Старый 17.08.2013, 10:42   #5
Tyoma5891
Пользователь
 
Регистрация: 16.08.2013
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Реализация может и не фонтан, конечно – но таблица в консоли получается "а-ля MySQL-консоль":
PHP код:
// 10, 20, 35, 25 – длина ячеек таблицы
$table_headers = array('Id' => 10'Title' => 20'About' => 35'Category' => 25);
$table_content = array(
    array(
        
'id' => 1,
        
'title' => 'Title 1',
        
'about' => 'About Title 1',
        
'category' => 'Category 1'
    
),
    array(
        
'id' => 2,
        
'title' => 'Title 2',
        
'about' => 'About Title 2',
        
'category' => 'Category 2'
    
),
    array(
        
'id' => 3,
        
'title' => 'Title 3',
        
'about' => 'About Title 3',
        
'category' => 'Category 3'
    
)
);

// линия-разделитель
$str_line $output '';
foreach (
$table_headers as $value) {
    
$str_line .= '+' str_pad('-'$value'-');
}
$str_line .= '+' PHP_EOL;

$output .= $str_line;

// заголовки таблицы
foreach($table_headers as $key => $value){
    
$output .= '| ' str_pad($key, ($value 1));
}
$output .= '|' PHP_EOL $str_line;

// контент таблицы
$cell_sizes array_values($table_headers);// размеры ячеек с контентом
foreach ($table_content as $value) {
    
$values array_values($value);
    for(
$i 0$i count($cell_sizes); $i++){
        
$output .= '| ' str_pad($values[$i], ($cell_sizes[$i] - 1));
    }
    
$output .= '|' PHP_EOL;
}
$output .= $str_line;

echo 
$output
Вывод в консоли:
Код:
$ php -f index.php
+----------+--------------------+-----------------------------------+-------------------------+
| Id       | Title              | About                             | Category                |
+----------+--------------------+-----------------------------------+-------------------------+
| 1        | Title 1            | About Title 1                     | Category 1              |
| 2        | Title 2            | About Title 2                     | Category 2              |
| 3        | Title 3            | About Title 3                     | Category 3              |
+----------+--------------------+-----------------------------------+-------------------------+
Огромное спасибо воспользовался вашей идей для реализации своей задачи!
Tyoma5891 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать все возможные, эквивалентные данному фрагменты программы, с использованием других операторов цикла pantuhin Помощь студентам 2 15.03.2012 23:59
дана строка символов ,разделённые пробелами(одним или несколькими) и не содержащие пробелов внутри себя,б Aktor1992 Паскаль, Turbo Pascal, PascalABC.NET 1 12.04.2011 22:19
определить количество символов и пробелов в строке без использования string.h Alena_897 Помощь студентам 5 07.12.2010 18:40
Как в Delphi вывести значения без пробелов и лишних символов Lesa1988 Помощь студентам 0 25.11.2010 21:45
Дан символьный файл f. Группы символов, разделенных пробелами и не содержащих пробелов внутри себя, назыв J__S(Юляшка) Общие вопросы C/C++ 3 13.04.2010 23:30