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

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

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

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

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

foreach($arr_data as $w) {
	$flag = false;
	foreach($word_num['word'] as $w2)
		if($w == $w2) {
			$flag = true;
			continue;
		}
	if (!$flag){
		$count = is_num($w);
		if($count>0) {
			$word_num['word'][] = $w;
			$word_num['count'][] = $count;
		}
	}
}

echo "<p>Слова с цифрами:<br>";
foreach($word_num['word'] as $w) 
	echo $w, "<br>";

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

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

// функция для подсчета количества цифр в слове
function is_num($var) {
	$count = 0;
    for ($i=0;$i<strlen($var);$i++) {
        $ascii_code=ord($var[$i]);
        if ($ascii_code >=48 && $ascii_code <=57)
			$count++;
	}
	return $count;
}

?>