2013-04-25 5 views
0

Я ищу, чтобы подсчитывать экземпляры каждого уникального значения в таблице HTML и возвращать результаты в собственной таблице. Таблица создается из текстового ввода пользователя. Так, например, пользовательский ввод может выглядеть так:Объяснение экземпляров уникальных значений в таблице 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 для подсчета уникальных значений, но я не уверен, что это лучший подход. более

РЕДАКТИРОВАТЬ

одна детали, что я не сделал явным образом состояния является то, что у меня есть доступ к входным данным пользователя (то есть вкладка разделенного текст) до него превращаются в таблицу. Итак, если было бы проще пересчитать значения, о которых идет речь, прежде чем конвертировать их в таблицу, то, пожалуйста, дайте мне знать.

ответ

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; 
} 

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

+0

Спасибо за вход, Патрик. Я собираюсь прочитать анализатор DOM, который вы сейчас связали. Это выглядит многообещающе. – Rooncicle

+0

Я думаю, что смогу это решение работать, если я получу объявление с идентификаторами и классами, назначенными во время создания таблицы HTML. Спасибо за рекомендацию. – Rooncicle

Смежные вопросы