【问题标题】:How to count total same words in php?如何计算php中相同的单词总数?
【发布时间】:2016-06-14 17:53:31
【问题描述】:

我尝试比较数据库和输入表单中的单词。我想数相同的单词,但结果不正确。

输入:方法或算法

tb_keyword

id      key
1      method
2     algorithm

结果

1

预期结果

2

代码:

include_once("kmp.php");
$kata = '';
if(isset($_GET['kata']))
  $kt = $_GET['kata'];
?>
<div style="width:600px;">
<form method="get" action="">
Cari Kata : <input type="text" name="kata" value="<?php echo $kata; ?>" /
<input type="submit" value="Cari">
</form>
</div>
<?php
$kata = explode(' ',$kt); 
foreach($kata as $katas){
$total = 0;
$KMP = new KMP();
$art = $db_con->prepare("select * from tb_positive_keywords");
$art->execute();
while($teks = $art->fetch(PDO::FETCH_ASSOC)){
if($kata!=''){
$hasil = $KMP->KMPSearch($katas,$teks['positive_keyword']);
$total += count($hasil);
 echo "Kata yang dicari adalah : ".$katas."<br/>";
echo "Jumlah kata yang ditemukan : ".count($hasil)."<br/>";
echo "Yaitu pada posisi string ke : ";
foreach($hasil as $h) echo $h." ";
 echo "<br/>";
 }
echo "<div style='width:600px;'>";
 echo nl2br(str_replace($katas,"<font color='red'>".$katas."</font>",$teks['positive_keyword']));
echo "</div>";
echo $total;
}

【问题讨论】:

  • 如果您想得到答案,您需要显示您的代码/查询。
  • @kainaw 对不起,我忘了放代码,但我已经编辑了它..
  • 你不能做foreach($kata as $kata)。这会用数组的第一个元素覆盖您的数组。我建议将数组设为复数形式,例如$katas$katai。然后,您可以使用foreach($katas as $kata)
  • @kainaw 尽管我已经实现了您的建议 foreach($kata as $katas),但它仍然是一样的。还有$hasil = $KMP-&gt;KMPSearch($katas,$teks['positive_keyword']);
  • 您是否得到了所有其他应该是 $katas$kata 实例?我在 if 语句中看到一个,而另一对尾随回声。以前,您的数组在通过 foreach 的第一步后变成了单个元素。所以,它只能算 1。这就是为什么我说应该修复它。这并不意味着它是唯一的问题。

标签: php mysql arrays knuth-morris-pratt


【解决方案1】:

尽管缺少您部分的信息。

您可以通过分组计算重复行,然后只获取那些在组中计数超过 1 个的行。

喜欢这个

拥有这种糟糕的架构:

create table tb_keyword
( id int primary key auto_increment,
  keyword varchar(50)
 );

 insert into tb_keyword
 values( null, 'method'),(null, 'algorithm');

你可以:

SELECT keyword, count(1) as times
from tb_keyword
group by keyword having  count(1) > 1

这将返回在tb_keyword中出现多次的关键字

【讨论】:

  • 将重新制定答案
  • 如果你想帮我解决问题,我真的很感激。
猜你喜欢
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多