Задача 45. В заданном текстовом файле элементами слов могут быть как буквы, так и цифры. Вывести на экран слово, содержащее наибольшее количество букв.

<?php
/*
Задача 45. В заданном текстовом файле элементами слов могут быть как буквы, так и цифры. Вывести на экран слово, содержащее наибольшее количество букв.
*/

// Словом будем называть набор символов, разделенный от другого набора знаком пробела

$letters = array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');

// прочитать содержимое текстового файла в переменную
$row_data = file_get_contents('test1.txt');

// извлечь из текста слова и занести в массив
$arr_data = explode(' ', $row_data);

foreach($arr_data as $w) {
	$count = is_letter($w, $letters);
	if($count > 0) {
		$word['word'][] = $w;
		$word['count'][] = $count;
	}
}

$max = $word['count'][0];
$index[] = 0;
$n = count($word['count']);
for($i=0; $i < $n; $i++) {
	$w = $word['count'][$i];
	if($w > $max)
		$max = $w;
}

echo '<p>Слово с наибольшим количеством букв:<br>';
for($i=0; $i < $n; $i++) {
	if($word['count'][$i] == $max)
		echo $word['word'][$i], '<br>';
}

// функция для подсчета количества букв в слове
function is_letter($var, &$arr) {
	$count = 0;
    for ($i=0;$i<strlen($var);$i++) {
		$l = strtolower($var[$i]);
		if(in_array($l, $arr))
			$count++;
	}
	return $count;
}

?>