Как сделать так, чтобы програма понимала какое число больше

216
19 ноября 2017, 17:00

Надо чтобы эта програма выводила лучших учеников по среднему балу.

Вот код:

<?
    $inform=array(
        1=>array("Василь",12,"н",8,"н","н",10,10),
        2=>array("Маша",8,"","н","",4,"н",7),
        3=>array("Ирина","н",11,"","н",7,"",6),
        4=>array("Никита","",8,8,9,"","н",7),
        5=>array("Саша","н","н","н","",9,"н",7),
        6=>array("Коля",9,"",8,10,10,11,12),
        7=>array("Гриша",9,"","","","",7,"н"),
        8=>array("Оля","н","н","","",6,"",""),
        9=>array("Галя",4,5,"","н","н","н",5),
        10=>array("Тарас",10,10,8,"н",11,12,9));
    echo "<table border='1' width='400'>";
       echo "<tr>";
            echo "<th>Номер</th>";
            echo "<th>Им'я ученика</th>";
            echo "<th>1</th>";
            echo "<th>2</th>";
            echo "<th>3</th>";
            echo "<th>4</th>";
            echo "<th>5</th>";
            echo "<th>6</th>";
            echo "<th>7</th>";
            echo "<th>Сер.<br>бал</th>";
        echo "</tr>";   
        foreach ($inform as $key=>$st){
        echo "<tr>";
            echo "<td>".$key."</td>";
               $n=0;
               $sum=0;
                foreach ($st as $value){
                    echo "<td>".$value."</td>";
                    if($value>0) {
                    $sum=$sum+$value;
                        $n++;
                    }   
                }   
                $ser=$sum/$n;
                echo "<td>".round($ser,2)."</td>";
            echo "</tr>";
        }   
    echo"</table>"; 

?>
Answer 1

Вот, если не менять особо ваш код, можно реализовать так, реализовал вывод всех по убыванию:

<?php 
 
	$inform=array( 
		1=>array("Василь",12,"н",8,"н","н",10,10), 
		2=>array("Маша",8,"","н","",4,"н",7), 
		3=>array("Ирина","н",11,"","н",7,"",6), 
		4=>array("Никита","",8,8,9,"","н",7), 
		5=>array("Саша","н","н","н","",9,"н",7), 
		6=>array("Коля",9,"",8,10,10,11,12), 
		7=>array("Гриша",9,"","","","",7,"н"), 
		8=>array("Оля","н","н","","",6,"",""), 
		9=>array("Галя",4,5,"","н","н","н",5), 
		10=>array("Тарас",10,10,8,"н",11,12,9)); 
 
	echo "<table border='1' width='400'>"; 
 
	echo "<tr>"; 
		echo "<th>Номер</th>"; 
		echo "<th>Им'я ученика</th>"; 
		echo "<th>1</th>"; 
		echo "<th>2</th>"; 
		echo "<th>3</th>"; 
		echo "<th>4</th>"; 
		echo "<th>5</th>"; 
		echo "<th>6</th>"; 
		echo "<th>7</th>"; 
		echo "<th>Сер.<br>бал</th>"; 
	echo "</tr>";    
 
	foreach ($inform as $key=>$st){ 
		echo "<tr>"; 
		echo "<td>".$key."</td>"; 
		$n=0; 
		$sum=0; 
		foreach ($st as $value){ 
			 
			echo "<td>".$value."</td>"; 
			if($value>0) { 
				$sum=$sum+$value; 
				$n++; 
			}    
			 
		}    
		$ser=$sum/$n; 
		echo "<td>".round($ser,2)."</td>"; 
		echo "</tr>"; 
		 
		$forSort[] = [ 'score' => $ser, 'name' => $st[0] ]; 
	}    
 
	echo"</table>"; 
 
array_multisort($forSort, SORT_DESC); 
echo '<h3>Результаты:</h3>'; 
 
foreach ($forSort as $value) { 
	$max = ( isset($max) ) ? $max : $value['score']; //Записываем максимальное значение 
	if ( $max > $value['score'] ) break; // Проверяем и выходим если значение меньше 
	echo <<<END 
	 
	<br> $value[name] : $value[score] 
	 
END; 
}

READ ALSO
Цикл выводит только первое значение

Цикл выводит только первое значение

Вот мой код, я пытаюсь просто сформировать массив объектовsizeof($vuzes) = 900, но почему то выводится только первое значение

260
Склонение слова во множественное число

Склонение слова во множественное число

Как поставить слово (например ручка) в множественное число, если ты заранее не знаешь на каком оно языке? То есть функция универсальная для...

307
Netbeans не может перейти к объявлению функции as_array в PHP. Почему так?

Netbeans не может перейти к объявлению функции as_array в PHP. Почему так?

Вот кодЗажимаю Ctrl и щелкаю мышкой на as_array

179
ошибка при входа и выхода на страницу

ошибка при входа и выхода на страницу

Привет всем, у меня тут две проблемы при входе меня перекидывает на стартовую страницу localhost и при возвращение вход осуществился, вход работает...

229