PDA

Просмотр полной версии : Сортировка полей в таблице


Mr.Vector!
15.03.2006, 12:52
Короче требуется, чтобы массив можно было вывести в таблице с сортировкой по вертикали
парился-парился... кто-то с форума помог.
Теперь возникла проблема.
Нужно, чтобы помимо строк также можно было указать количество столбцов.
Допустим введем $rws = 20;
И скрипт выведет все в один столбец.
Мне же нужно, чтобы если мы задали $cols = 4, то приоритет шел на количество столбцов, а не строк и он показал таблицу с четырьмя столбцами...

Вот код:
$alls[0] = "первое значение";
$alls[1] = "второе значение";
$alls[2] = "третье значение";
$alls[3] = "четвертое значение";
$alls[4] = "пятое значение";
$alls[5] = "шестое значение";
$alls[6] = "седьмое значение";
$alls[7] = "восьмое значение";
$alls[8] = "девятое значение";
$alls[9] = "десятое значение";
$alls[10] = "последнее значение";

$kol=@alls;
$i;
$rws = 4; #количество строк таблицы
#$cols = 4; #количество столбцов таблицы

print("\n<TABLE BORDER=1>");
#рисуем табличку с данными из массива
for($stroka=0; $stroka<$rws; $stroka++){
print("\n<TR>");
for($i=$stroka; $i<=$kol; $i=$i+$rws)
{
print("<TD>$alls[$i]</TD>");
}
print("</TR>\n");
}

print("\n</TABLE>");

вроде понятно изложил.
Есть варианты? :rolleyes:

SergoZD
15.03.2006, 12:59
Mr.Vector!
Нужно сортировку прикрутить?
Чтобы сортировка как шла?
1 2 3
4 5 6
7 8 9
или1 4 7
2 5 8
3 6 9

?

Mr.Vector!
15.03.2006, 13:02
второе.
она сейчас так и работает...
но нельзя явно задать количество столбцов.

SergoZD
15.03.2006, 13:07
<?
$alls[0] = "первое значение";
$alls[1] = "второе значение";
$alls[2] = "третье значение";
$alls[3] = "четвертое значение";
$alls[4] = "пятое значение";
$alls[5] = "шестое значение";
$alls[6] = "седьмое значение";
$alls[7] = "восьмое значение";
$alls[8] = "девятое значение";
$alls[9] = "десятое значение";
$alls[10] = "последнее значение";

$kol=sizeof($alls);
$rws = 4; #количество строк таблицы
$cols = 4; #количество столбцов таблицы

print("<TABLE BORDER=1>");
for($i=0;$i<$rws; $i++)
{
print("<TR>");
for($j=0; $j<$cols; $j++)
{
$num=($i+$j*($rws));
if ($num<$kol)
{
print("<TD>$alls[$num]</TD>");
}
else
{
print("<TD>&nbsp;</TD>");
}
}
print("</TR>");
}

print("</TABLE>");
?>

Mr.Vector!
15.03.2006, 13:30
не работает.
1. после $j=0 пропущено ;
2. где здесь я задам $cols ?

сорри про cols понял.
вместо цифры 3, но все равно не работает!

зациклилось все ...

вместо $alls[] ты хотел сказать $alls[$num] ???

SergoZD
15.03.2006, 13:38
Ага, наглючил там малось. Редактировал по ходу. Представленный выше вариант работает =)