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