计算HTML表中唯一值的实例

时间:2013-04-25 05:34:17

标签: javascript php jquery html-table

我正在计算HTML表中每个唯一值的实例,并将结果返回到它自己的表中。该表是从用户的文本输入生成的。例如,用户输入可能如下所示:

Report 46     Bob Marley   4/20/2013    Summary: I shot the sheriff    Case #32  User Error
Report 50    Billy The Kid    7/14/2013   Summary: I'm just a boy in a grown up world   Case #33    User Experience
Report 51    Oscar The Grouch    10/10/2013   Summary: Refuse, reuse, recycle   Case #33    User Experience

大空格是标签。

哪会回来:

<table>
 <tr>
  <td>Bob Marley</td><td>46</td><td>4/20/2013</td><td>Case #32</td><td>User Error</td>
 </tr>
 <tr>
  <td>Billy The Kid</td><td>50</td><td>4/20/2013</td><td>Case #33</td><td>User Experience</td>
 </tr>
 <tr>
  <td>Oscar The Grouch</td><td>51</td><td>10/10/2013</td><td>Case #33</td><td>User Experience</td>
 </tr>
</table>

我需要做的是1)统计报告的数量,2)计算每个病例数出现的次数,2)并计算每个类别出现的次数,然后在下一页上显示,如下所示:

Number of reports: 
3

Cases:
Case #33 - 2
Case #32 - 1

Categories:
User Experience - 2
User Error - 1

我正在寻找有关如何处理此问题的任何建议。我正在使用和学习Javascript / HTML(和jQuery),但是如果这些工具更合适的话,可以使用PHP,SQL等。

我正在考虑将表值传递给数组,然后使用for循环和regexes计算唯一值,但我不确定这是否是最好的方法。

修改

我没有明确说明的另一个细节是,在将其转换为表格之前,我可以访问用户输入数据(即制表符分隔的文本)。因此,如果在将其转换为表格之前更容易计算相关值,请告知我们。

1 个答案:

答案 0 :(得分:2)

就PHP而言,您可以将表格HTML存储到字符串中并将其加载到DOM解析器中。

http://simplehtmldom.sourceforge.net/

这是我们大多数涉及页面抓取的项目所使用的内容,尽管使用它们的函数从字符串中解析HTML也同样有效:

$html = str_get_html($yourHtmlString);

然后你可以遍历每个 tr ,然后从那里你可以查看每个 td 以添加到你的标签中。

即。要获得第三行的类别,您可以使用:

$html->find("table", 0)->find("tr", 2)->find("td", 4)->plaintext;

你可以循环遍历表格:

$reportCount = 0;
$reportCases = array();
foreach ($html->find("table", 0)->find("tr") as $tableRow) {
    $reportCount++; 
    $reportCases[] = $tableRow->find("td", 1)->plaintext;
}

等。虽然当然也存储了所有其他必要的数据,然后根据需要将其格式化为表输出。