mysql — подсчитывает символы и получает процент встречаемости в Php или SQL

У меня есть база данных с одной таблицей из двух столбцов 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. Спасибо!

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

Другие решения

Вы спрашивали:

Я не знаю, будет ли лучший подход php или sql.

Для этого частотно-частотного приложения вы должны получить строки с запросом MySQL и посчитать их частоты на языке PHP-клиента.

Вы мог разработать некоторый код MySQL для подсчета на стороне сервера, но это будет довольно сложно.

0

По вопросам рекламы [email protected]