Задача 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;
}
?>