У меня есть код, который будет считать частоту алфавита в строке. , Мой код:Преобразование массива в настраиваемый формат с использованием php
<?php
$str = "iamtheone";
$freq_count = array();
for ($i = 0; $i < strlen($str); $i++) {
$index = $str[$i];
$freq_count[$index]++;
foreach (range('a', 'z') as $char) {
//echo "<pre>".$key . " " . $char."</pre>";
$index = $char;
if (isset($freq_count[$index])) {
} else {
$freq_count[$index] = "0";
}
}
}
echo "<pre>";
print_r($freq_count);
echo "</pre>";
?>
Выход:
Array
(
[i] => 1
[a] => 1
[b] => 0
[c] => 0
[d] => 0
[e] => 2
[f] => 0
[g] => 0
[h] => 1
[j] => 0
[k] => 0
[l] => 0
[m] => 1
[n] => 1
[o] => 1
[p] => 0
[q] => 0
[r] => 0
[s] => 0
[t] => 1
[u] => 0
[v] => 0
[w] => 0
[x] => 0
[y] => 0
[z] => 0
)
Теперь я хочу, чтобы преобразовать массив в этом формате:
*
* * * * * * * *
a b c d e f g h i j k l m n o p q r s t u v w x y z
Объяснение: Число звездочек будет зависит от того, сколько будет частоты каждого алфавита. Например, a
- это только однократное повторение в строке, e
дважды повторяется в строке и так далее.
Является ли мой формат массива верным? Любое предложение? Спасибо
вы можете упростить все существующий код в '$ ул = "Iamtheone"; $ freq_count = array_merge ( array_fill_keys (диапазон ('a', 'z'), 0), array_count_values (str_split ($ str)) ); var_dump ($ freq_count); 'который имеет дополнительное преимущество уже сортироваться по символу –