Разбиение массива

RomikChef

Guest
Да, я хочу узнать от тебя
как вывести в один столбик.

Потому, что сделать, чтобы тот же самый код выводил в три столбика - это добавить в него одну строчку.
но пока добавлять некуда
 

Dem0nx

Guest
Вот например:
$arr = array("1c", "2c", "3c", "4c", "5c", "6c", "7c");
for ($i = 1; $i <= ceil(count($arr)/3); $i++)
{
$n1 = $i - 1;
$n2 = floor($i + count($arr) - count($arr)/3*2);
$n3 = ceil($i + count($arr) - count($arr)/3);
print "$arr[$n1] - $arr[$n2] - $arr[$n3] <br>";
}
Теперь проблема в том что если добавить или удалить элемент из массива, то начинается .....=(
 

Dem0nx

Guest
В один столбик:
foreach ($arr as $v)
{
print $v."<br>";
}
 

RomikChef

Guest
молодец.
Дальше читай, что тебе написал крейзи.
А он написал - считай элементы, и как только будет три - переводи на следующую строку.
как считать - знаешь?
как строку переводить?
 

Dem0nx

Guest
RomikChef, если я буду так делать то получится
1c - 2c - 3c
4c - 5c - 6c
7c - -
а мне надо
1c - 4c - 7c
2c - 5c -
3c - 6c -
 

Crazy

Developer
Dem0nx, ты хочешь, чтобы в первой строке было три элемента, а в остальных по два?

Ответ: строки тоже считай. :)
 

netdog

net @
Не то он хочет...

тон хочет видимо чтобы было
всего 3 строки а элементы шли типа вот так

1 4 7 10 13 16 19
2 5 8 11 14 17 etc...
3 6 9 12 15 18
 

RomikChef

Guest
Демон, какая разница?

Хорошо, переводи строку после каждого элемента, а после третьего - переводи КОЛОНКУ.
Как начать новую колонку в таблице - тебе известно?
 

Dem0nx

Guest
NetDog нетак, а вот так:
1 7 13 19
2 8 14 etc...
3 9 15
4 10 16
5 11 17
6 12 18
RomikChef можешь показать как это будет выглядеть?
 

netdog

net @
Автор оригинала: Crazy
Всплеск телепатических способностей? :)
Ну что-то типа того+)
...


Ну Тут сразу надо просчитывать всё строку...
По кратности трём и еще как-то по-хитрому доставать сразу первую строку из массива etc..

ибо штмл средствами нельзя (имхо) перевести колонку
 

Dem0nx

Guest
Нужно придумать алгоритм типа:
$arr = array("1c", "2c", "3c", "4c", "5c", "6c", "7c");
for ($i = 1; $i <= ceil(count($arr)/3); $i++)
{
$n1 = $i - 1;
$n2 = floor($i + count($arr) - count($arr)/3*2);
$n3 = ceil($i + count($arr) - count($arr)/3);
print "$arr[$n1] - $arr[$n2] - $arr[$n3] <br>";
}
только доработать надо....
 

RomikChef

Guest
ибо штмл средствами нельзя (имхо) перевести колонку
Боже мой!!!!
Я думал, что один Демонукс хтмла не знает!

а тег <td> вообще господам присяжным знаком???
 

Dem0nx

Guest
RomikChef теперь сделай что ты надумал и напиши в здесь(полностью).
 

Dem0nx

Guest
Crazy похоже так...=) Всё равно есть выход....
 

netdog

net @
RomikChef,Crazy... HTML я знаю, просто вы меня не поняли...

Если сделать так то да всё получается:
<table>
<tr>
<td>1<br>2<br>3</td>
<td>4<br>5<br>6</td>
<td>7<br>8<br>9</td>
</tr>
</table>

А вот если так сделать:
<table border="1" style="border-collapse: collapse" bordercolor="#111111" width="26">
<tr>
<td width="7">1</td>
<td width="5">4</td>
<td width="6">7</td>
</tr>
<tr>
<td width="7">2</td>
<td width="5">5</td>
<td width="6">8</td>
</tr>
<tr>
<td width="7">3</td>
<td width="5">6</td>
<td width="6">9</td>
</tr>
</table>

То тогда надо знать сразу всю строку:
 

RomikChef

Guest
Нет дог, а такое понятие, как "вложенные таблицы"
тебе знакомо?

А перевести на следующую строку можно только тегом tr - иникак иначе?
br уже не котируется, да?
 
Сверху