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

?>