|
|
|
|
|
для: P@Sol
(18.06.2007 в 17:16)
| | разобрался:) | |
|
|
|
|
|
|
|
для: Trianon
(07.06.2007 в 18:19)
| | еще добавил строки
$tours[$teamst[0]]['diffs'][$teamst1] = $goal[0]-$goal[1];
$tours[$teamst[0]]['diffs'][$teamst2] = $goal[1]-$goal[0];
$tours[$teamst[0]]['win'][$teamst1] = $w1;
$tours[$teamst[0]]['win'][$teamst2] = $w2;
....
function compare_rank($a, $b)
{
return (($b['points']- $a['points']) ? ($b['points'] - $a['points']) :
(($b['diffs']- $a['diffs']) ? ($b['diffs'] - $a['diffs']) :
(($b['goals']- $a['goals']) ? ($b['goals'] - $a['goals']) :
(($b['win']- $a['win']) ? ($b['win'] - $a['win']) : //74 строка
(($a['id']- $b['id']) ? ($a['id'] - $b['id']) :
0)))));
}
....
$acm[$cmd]['id'] = 0+$cmd;
$acm[$cmd]['win'] += $res['win'][$cmd]; //108 строка
|
почему-то вылазит ошибка Notice: Undefined index: win in z:\home\localhost\www\index6.php on line 108 | |
|
|
|
|
|
|
|
для: P@Sol
(18.06.2007 в 16:58)
| | Вы чего?
function compare_rank($a, $b)
{
return (($b['points']- $a['points']) ? ($b['points'] - $a['points']) :
(($b['diffs']- $a['diffs']) ? ($b['diffs'] - $a['diffs']) :
(($b['goals']- $a['goals']) ? ($b['goals'] - $a['goals']) :
(($b['id']- $a['id']) ? ($b['id'] - $a['id']) :
0))));
}
$acm[$cmd]['id'] = 0+$cmd;
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.06.2007 в 18:19)
| | пользовательскую функцию переписал:)
function compare_rank($a, $b)
{
return (($b['points']- $a['points']) ? ($b['points'] - $a['points']) :
(($b['diffs']- $a['diffs']) ? ($b['diffs'] - $a['diffs']) :
(($b['goals']- $a['goals']) ? ($b['goals'] - $a['goals']) :
0)));
}
|
а как еще добавить если 'points, 'diffs' и 'goals' равны, то сортировать по ИД? | |
|
|
|
|
|
|
|
для: Trianon
(07.06.2007 в 18:19)
| | ты гений:) | |
|
|
|
|
|
|
|
для: P@Sol
(07.06.2007 в 16:53)
| |
<?
$rep = '1:2-0:24:2
1:1-2:25:16
1:0-2:12:19
1:1-0:11:21
1:0-0:3:20
1:0-2:4:22
1:1-0:9:0
1:2-0:17:27
###
2:2-1:0:24
2:0-3:12:22
2:1-3:25:20
2:0-3:21:9
2:2-0:17:2
2:0-1:27:3
2:1-0:16:4
2:0-1:19:11
###';
//$stats = file("res.txt");
$stats = explode("\r\n", $rep);
foreach($stats as $stat)
{
$stat = trim($stat);
if ($stat[0] == "#")
continue;
$team1s=0;
$team2s=0;
$teamst = explode(":",$stat);
$teamst1 = $teamst[2];
$teamst2 = $teamst[3];
$goal = explode("-",$teamst[1]);
$goal[0] = intval($goal[0]);
$goal[1] = intval($goal[1]);
if ($goal[0] > $goal[1])
{
$p1 = 3;
$p2 = 0;
}
else if ($goal[0] < $goal[1])
{
$p1 = 0;
$p2 = 3;
}
else if ($goal[0] == $goal[1])
{
$p1 = 1;
$p2 = 1;
}
$tours[$teamst[0]]['points'][$teamst1] = $p1;
$tours[$teamst[0]]['points'][$teamst2] = $p2;
$tours[$teamst[0]]['goals'][$teamst1] = $goal[0];
$tours[$teamst[0]]['goals'][$teamst2] = $goal[1];
$tours[$teamst[0]]['diffs'][$teamst1] = $goal[0]-$goal[1];
$tours[$teamst[0]]['diffs'][$teamst2] = $goal[1]-$goal[0];
$src[$teamst1][$teamst[0]] = $p1;
$src[$teamst2][$teamst[0]] = $p2;
}
$commands = array_keys($src);
//print_r($commands);
//$tours = array();
foreach($src as $cmd => $res)
{
$acm[$cmd] = array('points'=>0, 'diffs'=>0, 'goals'=>0);
}
function compare_rank($a, $b)
{
return (($a['points']- $b['points']) ? ($a['points'] - $b['points']) :
(($a['diffs']- $b['diffs']) ? ($a['diffs'] - $b['diffs']) :
(($a['goals']- $b['goals']) ? ($a['goals'] - $b['goals']) :
0)));
}
foreach($tours as $tour => $res)
{
foreach($res['points'] as $cmd => $point)
{
$acm[$cmd]['points'] += $point;
$acm[$cmd]['diffs'] += $res['diffs'][$cmd];
$acm[$cmd]['goals'] += $res['goals'][$cmd];
$tours[$tour]['points'][$cmd] = $acm[$cmd];
}
uasort($acm, 'compare_rank');
$n = 0;
foreach($acm as $cmd =>$point)
$ord[$cmd]=++$n;
$tours[$tour]['rank']=$ord;
}
{
echo "<table border=1><tr><th> Command </th>";
foreach($tours as $tour => $res)
echo "<th> Tour $tour </th><th> Rank </th>";
echo "</tr>\r\n";
}
foreach($commands as $cmd)
{
echo "<tr><th> $cmd </th>";
foreach($tours as $tour => $res)
{
$points = $res['points'][$cmd]['points'];
$rank = $res['rank'][$cmd];
echo "<td> $points </td><td> $rank </td>\r\n";
}
echo "</tr>\r\n";
}
{
echo "</table>\r\n";
}
//print_r($tours);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.06.2007 в 13:58)
| | получиться должно вот это
sql запрос в данном случае
$query = "Select * from table order by `point` DESC, `matches`, `diff` DESC, `in_g` DESC, `win` DESC, `id`";
|
разница мячей = забитые мячи - пропущенные
в туре проходит 8 игр, но для каждой команды 1 тур = 1 игра
в массивах такое сделать мне кажется очень-очень сложно, если не возможно | |
|
|
|
|
|
|
|
для: P@Sol
(07.06.2007 в 13:26)
| | если Вы вот эту фразу
итоге надо получить таблицу, где указаны места команд по турам, при равенстве очков учитывать разницу мяцей, а при равенстве разницы учитывать кол-во забитых мячей.
|
раскроете более подробно, можно будет над этим подумать.
Что такое разница мячей я еще понять могу,
но что значит "учитывать кол-во забитых мячей" и чем оно отличается от разницы - для меня - нефутболиста в общем-то - не доходит.
Равно как непонятно, чем игра отличается от тура, а если отличается - за игру или за тур учитывать. | |
|
|
|
|
|
|
|
для: cheops
(07.06.2007 в 13:13)
| | так изначально он полюбому будет пустой:( вот когда он первый раз попадает в эту строку ошибка и возникает, при последующих заходах ошибки уже нет, что логично. Вот и возник у меня вопрос как инициализировать вначале этот массив | |
|
|
|
|
|
|
|
для: P@Sol
(07.06.2007 в 12:23)
| | 2) in_array() принимает в качестве второго аргумента массив, поэтому следует проверять - является ли он массивом
<?php
if(!empty($commands) && is_array($commands))
if(!in_array($tbl['id'],$commands))
{
$commands[$i] = $tbl['id'];
$i++;
}
?>
|
| |
|
|
|
|