function mb_count_chars($input) {
$l = mb_strlen($input, 'UTF-8');
$unique = array();
for($i = 0; $i < $l; $i++) {
$char = mb_substr($input, $i, 1, 'UTF-8');
if(!array_key_exists($char, $unique))
$unique[$char] = 0;
$unique[$char]++;
}
return $unique;
}
$input = "Когда Вам покажется, что цель недостижима, не изменяйте цель - изменяйте свой план действий. Конфуций";
print_r(mb_count_chars(preg_replace('/[^[:alnum:]]/u', '', mb_strtolower($input))) );
$str = 'Когда Вам покажется, что цель недостижима, не изменяйте цель - изменяйте свой план действий. Конфуций';
$arr = preg_split('//u', mb_strtolower($str), 0, PREG_SPLIT_NO_EMPTY);
$arr_format = preg_grep("/\w/u", $arr);
$arr_count = array_count_values($arr_format);
arsort($arr_count);
print_r($arr_count);