Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/84: Рейтинг темы: голосов - 84, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64

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

26.10.2012, 15:56. Показов 16628. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток , перед мной поставили задачу вот сделать такую таблицу


Без использования на данный момент mysql я создал массив и предполагаю сделать его вывод , в правильном ли направлении я иду?

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
</head>
 
<body>
<?php
 
$name[0] ="Петров"; 
$name[1] ="Иванов"; 
$name[2] ="Сидоров"; 
$name[3] ="Ветрова"; 
$name[4] ="Филатова"; 
$name[5] ="Бубнов"; 
$name[6] ="Пескова"; 
$name[7] ="Ленинов"; 
 
$matematika[0] ="4"; 
$matematika[1] ="4"; 
$matematika[2] ="5"; 
$matematika[3] ="2"; 
$matematika[4] ="4"; 
$matematika[5] ="4"; 
$matematika[6] ="5"; 
$matematika[7] ="4"; 
 
$fizika[0] ="3"; 
$fizika[1] ="5"; 
$fizika[2] ="3"; 
$fizika[3] ="3"; 
$fizika[4] ="4"; 
$fizika[5] ="3"; 
$fizika[6] ="5"; 
$fizika[7] ="3"; 
 
$himiya[0] ="3"; 
$himiya[1] ="4"; 
$himiya[2] ="4"; 
$himiya[3] ="3"; 
$himiya[4] ="4"; 
$himiya[5] ="3"; 
$himiya[6] ="4"; 
$himiya[7] ="3"; 
 
$russkiy[0] ="5"; 
$russkiy[1] ="5"; 
$russkiy[2] ="3"; 
$russkiy[3] ="4"; 
$russkiy[4] ="5"; 
$russkiy[5] ="4"; 
$russkiy[6] ="2"; 
$russkiy[7] ="5"; 
 
 
?>
</body>
</html>


как я понимаю мне нужно будет циклично вывести массив , но как сделать подсчет всего остального??
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2012, 15:56
Ответы с готовыми решениями:

Вывод массива в виде таблицы
$size = rand(1,4); echo &quot;Размер масива = $size &lt;/br&gt;&quot;; for ($i=0;$i&lt;$size;$i++) { for($j=0;$j&lt;$size;$j++) { ...

Вывод массива в виде таблицы
Здравствуйте. Помогите, пожалуйста, вывести массив в виде такой таблицы. Составить программу, которая заполняет массив случайными...

Вывод сортировки массива в виде таблицы
все доброго времени суток, помогите пожалуйста прикрутить к коду вывод в виде таблицы(при помощи msflexgrid), массив берется из файла,...

14
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
26.10.2012, 16:11
можно массив, а можно и в файл записать для гибкости)
0
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 16:14  [ТС]
если можно , пожалуйста поподробнее просто прошел по курсам Попова и не до конца понимаю что к чему даже с пересмотром.
0
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
26.10.2012, 16:25
Можно все запилить в один массив:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$marks = array(
    array(
        'name'=>'Петров',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
    array(
        'name'=>'Иванов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
);
?>
<table>
    <thead>
        <tr>ФИО / Предметы</tr>
        <tr>математика</tr>
        <tr>физика</tr>
        <tr>химия</tr>
        <tr>русский</tr>
        <tr>средний бал</tr>
    </thead>
    <tbody>
<?php
foreach ($marks as $student)
{
    echo '<tr>
             <td>'.$student['name'].'</td>
             <td>'.$student['subjects']['math'].'</td>
             <td>'.$student['subjects']['physics'].'</td>
             <td>'.$student['subjects']['chemistry'].'</td>
             <td>'.$student['subjects']['russian'].'</td>
             <td></td>
    </tr>';
}
?>
    </tbody>
</table>
1
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 16:29  [ТС]
ого , спасибо щас буду сидеть разбирать по кускам , что откуда )) только в 43 строке пишет что ошибка
0
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
26.10.2012, 16:35
Посмотрите внимательно, правильно ли вы скопировали все. У меня все ок.
0
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 16:36  [ТС]
Извиняюсь , все правильно , плохо скопировал , спасибо огромное ,по какой литературе вы учились??
0
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
26.10.2012, 16:38
Азы осваивал с этой книги http://www.softtime.ru/php5/?id_article=46, но есть обновленные издания. А все остальное как-то пришло из работы и общения с более опытными товарищами на форумах и т.д.
1
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 17:39  [ТС]
Вот что у меня получилось , а как теперь сделать так что бы подсчитывался средний балл?и как еще выровнять по заголовкам?
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
$marks = array(
    array(
        'name'=>'Петров',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
    array(
        'name'=>'Иванов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Сидоров',
        'subjects'=>array(
            'math'=>5,
            'physics'=>3,
            'chemistry'=>4,
            'russian'=>3
        ),
    ),
       array(
        'name'=>'Ветрова',
        'subjects'=>array(
            'math'=>2,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array('name'=>'Филатова',
        'subjects'=>array(
            'math'=>4,
            'physics'=>4,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Бубнов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array(
        'name'=>'Пескова',
        'subjects'=>array(
            'math'=>5,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>2
        ),
    ),
       array(
        'name'=>'Ленинов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
);
 
?>
<table>
    <thead>
        <tr>ФИО / Предметы</tr>
        <tr>математика</tr>
        <tr>физика</tr>
        <tr>химия</tr>
        <tr>русский</tr>
        <tr>средний бал</tr>
    </thead>
    <tbody>
<?php
foreach ($marks as $student)
{
    echo '<tr>
             <td>'.$student['name'].'</td>
             <td>'.$student['subjects']['math'].'</td>
             <td>'.$student['subjects']['physics'].'</td>
             <td>'.$student['subjects']['chemistry'].'</td>
             <td>'.$student['subjects']['russian'].'</td>
             <td></td>
    </tr>';
}
?>
    </tbody>
</table>
0
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
26.10.2012, 17:43
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
$marks = array(
    array(
        'name'=>'Петров',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
    array(
        'name'=>'Иванов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Сидоров',
        'subjects'=>array(
            'math'=>5,
            'physics'=>3,
            'chemistry'=>4,
            'russian'=>3
        ),
    ),
       array(
        'name'=>'Ветрова',
        'subjects'=>array(
            'math'=>2,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array('name'=>'Филатова',
        'subjects'=>array(
            'math'=>4,
            'physics'=>4,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Бубнов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array(
        'name'=>'Пескова',
        'subjects'=>array(
            'math'=>5,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>2
        ),
    ),
       array(
        'name'=>'Ленинов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
);
 
?>
<table>
    <thead>
<tr>
        <td>ФИО / Предметы</td>
        <td>математика</td>
        <td>физика</td>
        <td>химия</td>
        <td>русский</td>
        <td>средний бал</td>
</tr>
    </thead>
    <tbody>
<?php
foreach ($marks as $student)
{
    echo '<tr>
             <td>'.$student['name'].'</td>
             <td>'.$student['subjects']['math'].'</td>
             <td>'.$student['subjects']['physics'].'</td>
             <td>'.$student['subjects']['chemistry'].'</td>
             <td>'.$student['subjects']['russian'].'</td>
             <td>'.(($student['subjects']['math']+$student['subjects']['physics']+$student['subjects']['chemistry']+$student['subjects']['russian'])/4).'</td>
    </tr>';
}
?>
    </tbody>
</table>
1
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 17:46  [ТС]
Спасибо огромное
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
26.10.2012, 17:54
Эту строку
PHP
1
<td>'.(($student['subjects']['math']+$student['subjects']['physics']+$student['subjects']['chemistry']+$student['subjects']['russian'])/4).'</td>
можно короче и универсальней записать
PHP
1
<td>'.(array_sum($student['subjects']) / count($student['subjects'])).'</td>
0
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 18:04  [ТС]
извиняюсь за свои вопросы , но последний обещаю , а как еще снизу вывести средний балл?

Добавлено через 9 минут
Таким же методом можно?)Или без грамотно ?

Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
$marks = array(
    array(
        'name'=>'Петров',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
    array(
        'name'=>'Иванов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Сидоров',
        'subjects'=>array(
            'math'=>5,
            'physics'=>3,
            'chemistry'=>4,
            'russian'=>3
        ),
    ),
       array(
        'name'=>'Ветрова',
        'subjects'=>array(
            'math'=>2,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array('name'=>'Филатова',
        'subjects'=>array(
            'math'=>4,
            'physics'=>4,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Бубнов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array(
        'name'=>'Пескова',
        'subjects'=>array(
            'math'=>5,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>2
        ),
    ),
       array(
        'name'=>'Ленинов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
         array(
        'name'=>'Средний балл группы',
        'subjects'=>array(
            'math'=>(4+5+2+4+4+5+4)/8,
            'physics'=>(3+5+3+3+4+3+5+3)/8,
            'chemistry'=>(3+4+4+3+4+3+4+3)/8,
            'russian'=>(5+5+3+4+5+4+2+5)/8
        ),
    ),
);
?>
<table>
    <thead>
<tr>
        <td>ФИО / Предметы</td>
        <td>математика</td>
        <td>физика</td>
        <td>химия</td>
        <td>русский</td>
        <td>средний балл</td>
</tr>
    </thead>
    <tbody>
<?php
foreach ($marks as $student)
{
    echo '<tr>
             <td>'.$student['name'].'</td>
             <td>'.$student['subjects']['math'].'</td>
             <td>'.$student['subjects']['physics'].'</td>
             <td>'.$student['subjects']['chemistry'].'</td>
             <td>'.$student['subjects']['russian'].'</td>
             <td>'.(($student['subjects']['math']+$student['subjects']['physics']+$student['subjects']['chemistry']+$student['subjects']['russian'])/4).'</td>
    </tr>';
}
?>
 
    </tbody>
</table>
</body>
</html>
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
26.10.2012, 18:13
лучше как то так
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
$marks = array(
    array(
        'name'=>'Петров',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
    array(
        'name'=>'Иванов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Сидоров',
        'subjects'=>array(
            'math'=>5,
            'physics'=>3,
            'chemistry'=>4,
            'russian'=>3
        ),
    ),
       array(
        'name'=>'Ветрова',
        'subjects'=>array(
            'math'=>2,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array('name'=>'Филатова',
        'subjects'=>array(
            'math'=>4,
            'physics'=>4,
            'chemistry'=>4,
            'russian'=>5
        ),
    ),
       array(
        'name'=>'Бубнов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>4
        ),
    ),
       array(
        'name'=>'Пескова',
        'subjects'=>array(
            'math'=>5,
            'physics'=>5,
            'chemistry'=>4,
            'russian'=>2
        ),
    ),
       array(
        'name'=>'Ленинов',
        'subjects'=>array(
            'math'=>4,
            'physics'=>3,
            'chemistry'=>3,
            'russian'=>5
        ),
    ),
);
 
?>
<table>
    <thead>
<tr>
        <td>ФИО / Предметы</td>
        <td>математика</td>
        <td>физика</td>
        <td>химия</td>
        <td>русский</td>
        <td>средний бал</td>
</tr>
    </thead>
    <tbody>
<?php
$math = 0;
$physics = 0;
$chemistry = 0;
$russian = 0;
$all = 0;
foreach ($marks as $student)
{
    $math += $student['subjects']['math'];
    $physics += $student['subjects']['physics'];
    $chemistry += $student['subjects']['chemistry'];
    $russian += $student['subjects']['russian'];
    $all += $n = array_sum($student['subjects']) / count($student['subjects']);
    echo '<tr>
             <td>'.$student['name'].'</td>
             <td>'.$student['subjects']['math'].'</td>
             <td>'.$student['subjects']['physics'].'</td>
             <td>'.$student['subjects']['chemistry'].'</td>
             <td>'.$student['subjects']['russian'].'</td>
             <td>'.$n.'</td>
    </tr>';
}
echo '<tr>
         <td>Средний бал</td>
         <td>'.($math / count($marks)).'</td>
         <td>'.($physics / count($marks)).'</td>
         <td>'.($chemistry  / count($marks)).'</td>
         <td>'.($russian  / count($marks)).'</td>
         <td>'.($all / count($marks)).'</td>
</tr>';
?>
    </tbody>
</table>
2
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 64
26.10.2012, 18:22  [ТС]
спасибо большое , и спасибо всем за ответы , твой вариант для моего восприятия посложнее потому что все сокращенно ) буду разбираться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2012, 18:22
Помогаю со студенческими работами здесь

Вывод одномерного массива в виде таблицы
Дан одномерный массив А из 15 целых чисел. А=12 43 45 87 98 52 72 4 90 15 17 31 7 54 77. Нужно вывести его на экран в 3 строки по 5...

Предусмотреть вывод исходного массива в виде таблицы
Разработать алгоритм и программу для вычисления среднего арифметического любых указанных строки или столбца двумерного массива размером...

[Fortran-90] Вывод двумерного массива в виде таблицы
Добрый день. Вот это есть, с неявными циклами write(*,10) ((b(i,j),j=1,m),i=1,n) 10 format (1x,i2) Массив выводится в столбик...

Вывод значений массива в виде таблицы в 5 столбцов
написал программу заполнения динамического массива случайными числами из интервала от -999 до 999 с использованием функции srand()....

Вывод массива структур на экран в виде таблицы
Хранение данных необходимо организовать в виде массива структур. В программе должны быть реализованы следующие функции: 1) Создание новой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru