我有一个包含两列FirstName
和LastName
的表格的数据库
我的名字是Bruce Wayne
,所以我想要的是一个输出,它会给我这个:
a 1 10%
B 1 10%
c 1 10%
e 2 20%
n 1 10%
r 1 10%
u 1 10%
W 1 10%
y 1 10%
两个名称中每个字符出现的次数以及整体出现的百分比是多少。 我是php和mysql的新手,欢迎提供一些帮助。 到目前为止,我找到了这个http://php.net/manual/en/function.substr-count.php
$text = 'This is a test';
echo strlen($text); // 14
echo substr_count($text, 'is'); // 2
我不知道最好的方法是php还是sql。谢谢!
答案 0 :(得分:1)
首先拆分数组中的所有字母。计算数组。循环遍历数组并计算我们看到它们的频率。然后循环另一次打印出结果:
<?php
$text = 'This is a test';
$text = str_replace(' ', '', $text );
$arrLetters = str_split($text);
$countLetters = count($arrLetters);
$letters = [];
foreach($arrLetters as $letter){
if(isset($letters[$letter])){
$letters[$letter] += 1;
} else {
$letters[$letter] = 1;
}
}
foreach($letters as $letter => $total){
echo $letter.":".$total.":".round(($total/$countLetters*100),2)."%<br />";
}
结果:
T:1:9.09%
h:1:9.09%
i:2:18.18%
s:3:27.27%
a:1:9.09%
t:2:18.18%
e:1:9.09%
答案 1 :(得分:0)
你问:
我不知道最好的方法是php还是sql。
对于这个字符频率应用程序,您应该使用MySQL查询获取字符串并使用您的php客户端语言计算它们的频率。
你可以计算出一些MySQL代码来执行计数服务器端,但它会非常复杂。