2011-09-24 100 views
1

我想要創建一個使用公式和一些預定義數字動態創建的矩陣類型表,我知道一些PHP,但這遠遠超出了我的範圍。使用PHP創建動態矩陣表使用公式創建動態矩陣表

好吧我有很多靜態寬度(毫米),例如:100,200,300,400,500 ......最多說1200.我也有許多高度(毫米),例如: 80 ...直到說1500

我具有15£價格開始點,這將涉及到最小寬度和高度,100×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

所以我需要把所有的可行陣列的價格做一個插入到相關在數據庫中記錄。

我希望這是有道理的,有人可以指出我正確的方向。

+0

我沒有看到height'的width'如何'和'相關的公式? – MeLight

+0

實際上它們不是,但它們與表格中的答案有關。該公式從左上角的單元格開始,該單元格是靜態的15(15)倍乘以因子1.6,以生成所有相關定價。 – madmatuk

回答

0

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>"; 
+0

嗨Deepi謝謝你的輸入,但是這不是我想要做的,我試圖根據前面單元格上的公式* 1.6創建動態價格(並以矩陣樣式顯示),並將它們存儲在數組插入數據庫。 – madmatuk

+0

這給出矩陣形式。要計算動態值,只需調用一個函數,在該函數中寫入$ value1,... 12並計算該函數中的ur價格。函數的返回值成爲單元格值 – deepi

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); 
?>