Задача 43. В заданном текстовом файле найти самое короткое слово и вывести все гласные буквы (без повторений), которые встречаются в этом слове.
<?php
/*
Задача 43. В заданном текстовом файле найти самое короткое слово и вывести все гласные буквы (без повторений), которые встречаются в этом слове.
*/
// Словом будем называть набор символов, разделенный от другого набора знаком пробела
// массив гласных букв
$arr_vowel = array('а','у','о','ы','и','э','я','ю','ё','е');
// прочитать содежимое текстового файла в переменную
$row_data = file_get_contents('test1.txt');
// извлечь из текста слова и занести в массив
$arr_data = explode(' ', $row_data);
$min = strlen($arr_data[0]);
foreach($arr_data as $w) {
$word_length = strlen($w);
if($word_length < $min)
$min = $word_length;
}
foreach($arr_data as $w)
if(strlen($w) == $min)
$shortest_word[] = $w;
//удаление дубликатов в массиве коротких слов
$shortest_word = array_unique($shortest_word);
echo "<p>Самое короткое слово:<br>";
foreach($shortest_word as $w)
echo $w, "<br>";
foreach($shortest_word as $w) {
$arr_vowel2 = array();
$w = strtolower($w);
$n = strlen($w);
foreach($arr_vowel as $vowel)
for($i=0; $i<$n; $i++)
if($w[$i]==$vowel) {
$arr_vowel2[] = $vowel;
break;
}
echo "<p>Гласные буквы в слове '$w': ";
echo (count($arr_vowel2)>0) ? implode(", ", $arr_vowel2) : "(нет)";
unset($arr_vowel2);
}
?>