Мисоли 44. Дар файли матнии додашуда дар таркиби калимаҳо ҳам ҳарфҳо ва ҳам рақамҳо буда метавонанд. Калимаеро, ки миқдори зиёдтарини рақамҳоро соҳиб аст, чоп намоед. Агар чунин калима якчандто бошад, ҳамаашонро чоп намоед.

<?php
// Калима гуфта маҷмӯи рамзҳоеро меномем, ки 
// аз дигар маҷмӯъ бо рамзи пробел ҷудо карда шудааст.

// матни дар файл бударо ба тағйирёбанда мегирем
$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;
}

?>