Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для pudz
3 / 3 / 1
Регистрация: 05.11.2011
Сообщений: 27

Формирование таблицы на основе данных из массива

30.03.2014, 18:23. Показов 1337. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется следующий массив:

SQL
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
Array
(
    [0] => Array
        (
            [use_id] => 1
            [use_login] => admin
            [pro_img] => foto.jpg
            [pro_fam] => Левочкин
            [pro_im] => Владимир
            [pro_otch] => Генадиевич
            [dol_name] => И.о. Профессора
        )
 
    [1] => Array
        (
            [use_id] => 2
            [use_login] => USER
            [pro_img] => foto.jpg
            [pro_fam] => Гаврилов
            [pro_im] => Валерий
            [pro_otch] => Георгиевич
            [dol_name] => Доцент
        )
 
    [2] => Array
        (
            [use_id] => 5
            [use_login] => buhar
            [pro_img] => foto.png
            [pro_fam] => Бухарест
            [pro_im] => Сергей
            [pro_otch] => Константинович
            [dol_name] => Ассистент
        )
 
    [3] => Array
        (
            [use_id] => 6
            [use_login] => baytenovalm
            [pro_img] => foto.png
            [pro_fam] => Байтенова
            [pro_im] => Лаура
            [pro_otch] => Маратовна
            [dol_name] => Зав. кафедрой
        )
 
    [4] => Array
        (
            [use_id] => 9
            [use_login] => glebov
            [pro_img] => foto.jpg
            [pro_fam] => Глебов
            [pro_im] => Валентинович
            [pro_otch] => Валентин
            [dol_name] => Ассистент
        )
 
)

Необходимо сгенерировать таблицу следующего вида:


HTML5
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
<table>
    <!-- Первая строка, 4 столбца -->
    <tr>
        <td><img src="images/foto.jpg"></td>
        <td><img src="images/foto.jpg"></td>
        <td><img src="images/foto.jpg"></td>
        <td><img src="images/foto.jpg"></td>
    </tr>
    
    <!-- Вторая строка, 4 столбца -->
    <tr>
        <td>
            <p>Левочкин Владимир Генадиевич</p>
            <p>И.о. Профессора</p>
        </td>
        <td>
            <p>Гаврилов Валерий Георгиевич</p>
            <p>Доцент</p>
        </td>
        <td>
            <p>Бухарест Сергей Константинович</p>
            <p>Ассистент</p>
        </td>
        <td>
            <p>Байтенова Лаура Маратовна</p>
            <p>Зав. кафедрой</p>
        </td>
    </tr>
    
    <!-- Третья строка, 4 столбца -->
    <tr>
        <td><img src="images/foto.jpg"></td>
    </tr>
    
    <!-- Четвертая строка, 4 столбца -->
    <tr>
        <td>
            <p>Глебов Валентинович Валентин</p>
            <p>Ассистент</p>
        </td>
    </tr>
</table>
Примерный вид таблицы во вложенном файле.

Вот такую я сварганил вещь и много подобных не рабочих как следует вариантов:

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
<table>
    <? for($i=0; $i<=1; $i++) :?>
        <? if($i == 0) :?>
        <tr>
            <? for($j=0, $line=1; $j<=count($profile)-1; $j++, $line++) :?>
                <? if($line != 5) :?>
                    <td><img src="<?=SITE_URL;?>files/profile/<?=$profile[$j]['use_login']."/".$profile[$j]['pro_img'];?>"></td>
                <? else:?>
                    <?$line = 0;?>
                <? endif;?>
            <? endfor;?>
        </tr>
        <? elseif($i == 1) :?>
        <tr>
            <? for($j=0, $line=1; $j<=count($profile)-1; $j++, $line++) :?>
                <? if($line != 5) :?>
                    <td>                                    
                        <p><a href="<?=SITE_URL;?>profile/user/<?=$profile[$j]['use_id'];?>"><?=$profile[$j]['pro_fam']." ".$profile[$j]['pro_im']." ".$profile[$j]['pro_otch'];?></a></p>  
                        <p><?=$profile[$j]['dol_name'];?></p>                                   
                    </td>
                <? else:?>
                    <?$line = 0;?>
                <? endif;?>
            <? endfor;?>
        </tr>
                                
        <? endif;?>
    <? endfor;?>
 
 
</table>
Миниатюры
Формирование таблицы на основе данных из массива  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2014, 18:23
Ответы с готовыми решениями:

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

Формирование таблицы на основе списков
Задание такое: Сформировать таблицу из списка. Массив в данной программе является Индексом. Т.е добавляется запись у которой...

Формирование таблицы на основе родительской
Здравствуйте! Сегодня на работе столкнулся со следующей проблемой. Имеется сводная таблица &quot;нагрузка&quot; по распределению нагрузки...

3
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
31.03.2014, 00:20
а если на дивах
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<style type="text/css">
    #wrap{
        width:1300px;
    }
    .cont{
        border: 1px solid #999999;
        float: left;
        margin: 20px 20px ;
        
        padding-left: 10px;
        width: 250px;
    }
  </style>
<div id="wrap">
<?foreach($a as $k => $v):?>
    <div class="cont">
        <p><?=$v['pro_img']?></p>
        <p><?=$v['pro_fam']?>&nbsp;<?=$v['pro_im']?>&nbsp;<?=$v['pro_otch']?></p>
        <p><?=$v['dol_name']?></p>
    </div>
<?endforeach?>
</div>
0
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
31.03.2014, 10:59
так, а что у вас получалось из ваших "нерабочих вариантов", покажите скрины и сгенерированный HTML
0
 Аватар для pudz
3 / 3 / 1
Регистрация: 05.11.2011
Сообщений: 27
31.03.2014, 11:16  [ТС]
Вот ребят, кому интересно рабочий вариант:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$rowblock = -2;
$rows = array();
foreach ($profile as $i => $user) {
    if ($i%4 == 0) {
        $rows[] = '<tr>';
        $rows[] = '<tr>';
        $rowblock += 2;
    }
    $rows[$rowblock] .= "<td><img src='/profile/user/{$user['pro_img']}'>";
    $rows[$rowblock+1] .= "<td><p>{$user['pro_fam']} {$user['pro_im']} {$user['pro_otch']}<p>{$user['dol_name']}";
}
for ($i = $i%4; $i < 3; $i++) {
    $rows[$rowblock] .= "<td>";
    $rows[$rowblock+1] .= "<td>";
}
echo "<table>",implode('', $rows),"</table>";
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2014, 11:16
Помогаю со студенческими работами здесь

Формирование таблицы (в датагриде) на основе выбора пользователя
Доброго времени суток! Подскажите, пожалуйста, начинающему где и что искать по теме. Имеется некая база данных MS SQL, содержащая сведения...

SQLITE. Формирование третьей таблицы на основе первых двух
Здравствуйте. Возникла задача в формировании таблицы следующим образом: Есть две таблицы с временем и данными. На основе этих двух таблиц...

Формирование отчета на основе данных из БД
Добрый день! Подскажите как с помощью языка C# формировать отчет к примеру есть у нас БД со значениями как вывести например в ворд? Или...

Формирование нового списка на основе существующих данных
Ребят... подскажите пожалуйста..где ошибка в коде... Задача На рабочем листе с помощью программного кода процедуры ProdSales...

Обновление данных одной таблицы на основе данных другой таблицы
мне нужно создать запрос на обновление данных одной таблицы на основе данных из другой таблицы. Дано: имя таблицы|ключевые поля ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru