PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Моська
Отправлено: 27 Марта, 2015 - 02:43:13
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Здравствуйте форумчане!
Возник вопрос имеется массив и таблица.
PHP:
скопировать код в буфер обмена
$Array = array ( '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , ... ) ; $x = 7 ; //Число строк меняется
$main = '<table border=1>' ;
for ( $i = 0 ; $i < $x ; $i ++ ) {
$main .= '<tr>' ;
foreach ( $Array as $chislo ) {
$main .= '<td>' . $chislo . '</td>' ;
}
$main .= '</tr>' ;
}
$main .= '</table>' ;
Вопрос! Как разбить массив по 5 элементов и первые пять вставить в первую строку таблицы, вторые 5 во вторую и т.д.
GoDr
Отправлено: 27 Марта, 2015 - 07:59:19
Посетитель
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015
Откуда: Тамбов
Помог: 17 раз(а)
PHP:
скопировать код в буфер обмена
// количество столбцов
$col = 4 ;
// результат
// массив с данными
$array = array ( '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' ) ;
// заодно сразу посчитаем сколько у нас там значений
$array_count = sizeof ( $array ) ;
// позиция ячейки
$i = $col ;
// листаем массив
foreach ( $array as $key => $value ) {
// уменьшаем позицию ячейки
$i --;
// создаём ячейку
$result [ ] = '<td>' . $value . '</td>' ;
// проверяем, а не конец ли ячейки и не закончился ли массив
if ( $i == 0 and $key != ( $array_count - 1 ) ) {
// Добавляем разделитель
$result [ ] = '</tr><tr>' ;
// "обнуляем" счётчик позиции
$i = $col ;
}
}
// дополняем строку пустыми ячейками
if ( $i ) {
}
// проверяем есть ли вообще что-нибудь в таблице
if ( $result ) {
// и завершаем таблицу
$result [ ] = '</tr></table>' ;
}
// выводим результ
(Добавление)
ах, ну да, забыл учитывать количество строк....
PHP:
скопировать код в буфер обмена
// количество столбцов
$col = 3 ;
// количество строк
$row = 3 ;
// результат
// массив с данными
$array = array ( '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' ) ;
// заодно сразу посчитаем сколько у нас там значений
$array_count = sizeof ( $array ) ;
// позиция ячейки
$i = $col ;
$y = $row ;
// листаем массив
foreach ( $array as $key => $value ) {
// уменьшаем позицию ячейки
$i --;
// создаём ячейку
$result [ ] = '<td>' . $value . '</td>' ;
// проверяем, а не конец ли ячейки и не закончился ли массив
if ( $i == 0 and $key != ( $array_count - 1 ) ) {
// Проверяем сколько строк уже выведено
$y --;
if ( $y == 0) {
break ;
}
// Добавляем разделитель
$result [ ] = '</tr><tr>' ;
// "обнуляем" счётчик позиции
$i = $col ;
}
}
// дополняем строку пустыми ячейками
if ( $i ) {
}
// проверяем есть ли вообще что-нибудь в таблице
if ( $result ) {
// и завершаем таблицу
$result [ ] = '</tr></table>' ;
}
// выводим результ
-----Система управления веб-содержимым Lotos CMS
Faraon-san
Отправлено: 27 Марта, 2015 - 14:23:23
Посетитель
Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013
Помог: 8 раз(а)
PHP:
скопировать код в буфер обмена
// Массив данных
$array = array ( '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' , '13' ) ; // Количество ячеек в стоке
$col = 5 ;
$i = 0 ;
$data = '<table><tbody><tr>' ;
foreach ( $array as $value )
{
if ( $i % $col == 0)
{
$data .= '</tr><tr>' ;
$i = 0 ;
}
$data .= '<td>' . $value . '</td>' ;
$i ++;
}
for ( ; $i < $col ; $i ++ )
{
$data .= '<td>пусто</td>' ;
}
$data .= '</tr></tbody></table>' ;
echo $data ;
(Отредактировано автором: 27 Марта, 2015 - 14:25:45)
GoDr
Отправлено: 27 Марта, 2015 - 14:44:18
Посетитель
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015
Откуда: Тамбов
Помог: 17 раз(а)
Faraon-san , есть небольшие 3 проблемы
1. Не учитываешь заданное количество строк.
2. Если массив пустой, то ты получишь пустую таблицу. Получается что в массиве в данном случае пять пустых значений, а он пуст
CODE (
html ):
скопировать код в буфер обмена
<table >
<tbody >
<tr >
<td > пусто</ td >
<td > пусто</ td >
<td > пусто</ td >
<td > пусто</ td >
<td > пусто</ td >
</ tr >
</ tbody >
</ table >
3. А если в массиве что-то есть, то ты получишь первую строку без ячеек
(Отредактировано автором: 27 Марта, 2015 - 14:45:12)
-----Система управления веб-содержимым Lotos CMS
Faraon-san
Отправлено: 27 Марта, 2015 - 15:02:49
Посетитель
Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013
Помог: 8 раз(а)
писал на скорую руку, даже не проверил
про строки он автор поста не просил
тогда вот как то так:
PHP:
скопировать код в буфер обмена
// Массив данных
$array = array ( '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , '11' , '12' , '13' ) ; // Количество ячеек в стоке
$col = 5 ;
$i = 0 ;
$data = '<table><tbody><tr>' ;
foreach ( $array as $value )
{
$data .= '<td>' . $value . '</td>' ;
$i ++;
if ( $i % $col == 0)
{
$data .= '</tr><tr>' ;
$i = 0 ;
}
}
{
$i = $col ;
}
for ( ; $i < $col ; $i ++ )
{
$data .= '<td>пусто</td>' ;
}
$data .= '</tr></tbody></table>' ;
echo $data ;
(Отредактировано автором: 27 Марта, 2015 - 15:04:04)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB