updated@10:40msk 4Вус2008
source:code.txt
Список команд t.txt
Результат работы скрипта t.php
<!--<form method="post" >
<textarea name=code> <? echo $_POST['code'];?> </textarea>
<input type="button" onClick="validForm()" value="OK">
</form> -->
<? $t=array(); $r=array(); // объявляем массивы, так как некоторые версии пхп ругаются.
$in=file_get_contents('t.txt'); // << Если читать из файла
//$in=$_POST['code'];// << Если из формы - раскомментруйте строки выше.
$in=str_replace("\r","",$in); $in=explode("\n",$in."\n");
foreach ($in as $v) if (strlen($v)>3) $t[]= explode(",",$v);
foreach ($t as $k =>$v) { $t[$k][1]=intval($v[1]); $t[$k][2]=intval($v[2]); }
// сформироавли массив. На самом деле, все делается одной строчкой, (fgetcsv) но она имееи свойство глычить при русской кодировке.
$count=count($t);
for ($i=1; $i<=$count;$i++) { // стандартная задача - определить максимальный элемент в массиве
$max=0;
foreach ($t as $k =>$v) if ( ( ($v[2]==$t[$max][2]) AND ($v[1]<$t[$max][1]) ) OR ($v[2]>$t[$max][2]) ) $max=$k;
// с одним только НО: он будет максимален, если имеет больше всех очков, ИЛИ столько-же очков сколько и у лидера, но меньше игр
$r[]=$t[$max]; // добавили в результирующий массив
unset($t[$max]); // и удалили
}
// вывод результата, можете поменять на свои :)
$out='';
$out.= '<table border=1>'."\n";
foreach ($r as $v) $out.= "<tr><td>$v[0]</td><td>$v[1]</td><td>$v[2]</td></tr>\n";
$out.= '</table>';
echo $out; // вывод результата как таблицу
echo '<textarea cols="100" rows="'.($count+3).'">'.$out.'</textarea>'; // вывод результата как
?>
1