Создание динамической матричной таблицы с использованием формулы с PHP - PullRequest
1 голос
/ 24 сентября 2011

Я пытаюсь разобраться с созданием таблицы матричного типа, созданной динамически с использованием формулы и некоторых предопределенных чисел, я знаю немного php, но это выходит за рамки моих возможностей.

Хорошо, у меня есть множество статическихширина (мм), например: 100, 200, 300, 400, 500 .... вплоть до 1200. У меня также есть многочисленные высоты (мм), например: 50, 60, 70, 80 ... до 1500

У меня есть начальная точка цены 15 фунтов стерлингов, это будет относиться к минимальной ширине и высоте, 100 x 50

Затем я получу формулу, чтобы умножить ячейку предыдущей строки на 1,6, чтобы получитьцена.

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

width=> 100     200     300     400     500     600

Drop v

50      £15     £24     £38     £61     £98     £157

60      £24     £38     £61     £98     £157    £251

70      £38     £61     £98     £157    £251    £401

80      £61     £98     £157    £251    £401    £643

90      £98     £157    £251    £401    £643    £1028

100    £157     £251    £401    £643    £1028   £1646

Мне также нужно присвоить все значения таблице в mysql, определенной ниже для каждой перестановки. Записи уже существуют для каждого разрешения по ширине и высоте.

например,

ширина: 100

высота: 50

цена:15

Поэтому мне нужно собрать все цены в работающем массиве, чтобы вставить его в соответствующую запись в базе данных.

Надеюсь, это имеет смысл, и кто-то может указать мне правильное направление.

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

Вот как вы строите матрицу значений, когда первое значение равно 15.

<?php
$initVal = 15;
$rows = 6;
$cols = 6;
$matrix = array();
for($i = 0; $i < $rows; $i++) {
    if($i != 0)
        $initVal = round($matrix[$i-1][0]*1.6);
    $matrix[$i] = array();
    for($j = 0; $j < $cols; $j++) {
        if($j == 0) 
            $matrix[$i][$j] = $initVal;
        else
            $matrix[$i][$j] = round($matrix[$i][$j-1]*1.6);
    }
}

print_r($matrix);
?>
0 голосов
/ 24 сентября 2011

100 200, ........... 1200 ----> 12 столбцов 50, 60, 70, .......... 1500 ----> 145 строк

echo "<table id='tb'>";
 $height=50;
$i=0;
for($i=0;$i<145;$i++)
 {
   echo "<tr height='".$height."'>";
   echo "<td width='100px'>".$value1."</td>";
   echo "<td width='200px'>".$value2."</td>";
   echo "<td width='300px'>".$value3."</td>";
   echo "<td width='400px'>".$value4."</td>";
   echo "<td width='500px'>".$value5."</td>";
   echo "<td width='600px'>".$value6."</td>";
   echo "<td width='700px'>".$value7."</td>";
   echo "<td width='800px'>".$value8."</td>";
   echo "<td width='900px'>".$value9."</td>";
   echo "<td width='1000px'>".$value10."</td>";
   echo "<td width='1100px'>".$value11."</td>";
   echo "<td width='1200px'>".$value12."</td>";
   echo "</tr>";
   $height=$height+10;
   //here '$value1 to $value12' is caluculated values
 }
 echo "</table>";
...