gpt4 book ai didi

c# - 从该行数据创建 HTML 表格的算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:10 24 4
gpt4 key购买 nike

我遇到了一个相对(几乎)微不足道的问题。我有一行数据要以表格形式 (HTML) 显示。出于某种原因(可能 [再次] 在计算机后面度过漫长的一天),我没有想出任何优雅的解决方案(算法)来做到这一点。

我提供了一些样本数据,以及这些数据如何在表格中显示。我将不胜感激关于算法的一些想法来实现这一点。

输出表的行标有各种分数,索引显示在底部。

我希望能够有一个变量来确定要打印的列数,然后再在下面打印一个新表格 - 以防止表格过长。

所以我想编写一个具有以下签名的函数(忽略数据类型):

函数 create_table_html_from_rows(datarows, max_cols_per_table)

这是示例数据和模拟输出表演示

Row data:

index, Score, amount
1, level 1, 12.24
3, level 4, 14.61
9, level 10, 42.35
15, level 2, -8.12


Scores
======

Level 1 12.24
Level 2 -8.12
Level 3
Level 4 14.61
.....
Level 10 42.35
----------------------------------------
| 1 | 3 | 9 | 15 <- Index

伪代码应该足够了,但是,如果您的代码片段是用一种编程语言编写的,那么值得指出的是,我将在 Python 中实现我的算法,但是以下任何一种语言的任何代码片段都可以:

Python、C、C++、PHP、C#

最佳答案

我假设您存储的原始数据与我下面的类似。此外,级别不是唯一的。

<?
$rowData = array(
0=> array('index'=>1, 'Score'=>"level 1", 'amount'=>12.24),
1=> array('index'=>3, 'Score'=>"level 4", 'amount'=>14.61),
2=> array('index'=>9, 'Score'=>"level 10", 'amount'=>42.35),
3=> array('index'=>15, 'Score'=>"level 2", 'amount'=>-8.12),
4=> array('index'=>12, 'Score'=>"level 10", 'amount'=>16.5)
// example Raw Data with non-unique levels
);
$numOfScores = 15; // Predefined Score Level Max
foreach($rowData as $c){
$cols[] = $c['index']; //Create index row
$score = str_replace("level ","",$c['Score']); // split the score so it is only numeric
$levels[$score][] = $c; //create a 2-D array based on the level
}
echo "<table><tr><th colspan=".(sizeof($cols)+1).">Scores:</th></tr>";
for($ii = 1; $ii < $numOfScores; $ii++){ // Go through the levels
echo "<tr><td>Level ".$ii."</td>";
for($i = 0; $i < sizeof($cols); $i++){
echo "<td>";
if(isset($levels[$ii])){ // If I have a level, let's print it in the right column
foreach($levels[$ii] as $lvl)
if($cols[$i] == $lvl['index']) echo $lvl['amount'];
}
echo "</td>";
}
echo "<tr>";
}
echo "<td>Index:</td>";
foreach($cols as $c){
echo "<td>$c</td>";
}
echo "</table>";
?>

我得到以下输出:

Scores:
Level 1 12.24
Level 2 -8.12
Level 3
Level 4 14.61
Level 5
Level 6
Level 7
Level 8
Level 9
Level 10 42.35 16.5
Level 11
Level 12
Level 13
Level 14
Index: 1 3 9 15 12

它在我的屏幕上显示正确,可能看起来不是。

如您所见,我在您的数据中添加了一个额外的行来模拟一个非唯一行。应该可以!

关于c# - 从该行数据创建 HTML 表格的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4009250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com