使用PHP的公式创建动态矩阵表

时间:2011-09-24 10:51:48

标签: php arrays matrix

我正在努力创建一个使用公式和一些预定义数字动态创建的矩阵类型表,我知道一点点php,但这远远超出了我的范围。

好的我有很多静态宽度(mm),例如:100,200,300,400,500 ......最多说1200。 我也有很多高度(mm),例如: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 个答案:

答案 0 :(得分:1)

以下是第一个值为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);
?>

答案 1 :(得分:0)

100,200,........... 1200 ----&gt; 12列 50,60,70,.......... 1500 ----&gt; 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>";