繁体   English   中英

计算字符数并获取在 PHP 或 SQL 中出现的百分比

[英]Count characters and get percentage of occurrence in Php or SQL

我有一个包含两列FirstNameLastName表的数据库,我的名字是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。 谢谢!

首先拆分数组中的所有字母。 计算数组。 遍历数组并计算我们看到它们的频率。 然后再循环一次打印出结果:

<?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%

你问:

我不知道最好的方法是 php 还是 sql。

对于这个字符频率应用程序,您应该使用 MySQL 查询获取字符串,并在您的 php 客户端语言中计算它们的频率。

可以编写一些 MySQL 代码来计算服务器端,但这会非常复杂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM