webForumDet fria alternativet

Sortering av multidimarray

1 svar · 216 visningar · startad av U2K

U2KMedlem sedan jan. 2000231 inlägg
#1

Hej!

Jag skulle vilja ha hjälp med att sortera en liten array som jag har..

Den består av lag och omgång och ser ut så här

$array[$team_id][] = $poang;

Ser ut så här t.ex..

array(
             [5] => array (  [0] = 0
                                  [1] = 3
                                  [2] = 4
                                  [3] = 7
......
                                  [21] = 51

Alltså är 5 = lagets_id
0-21 är omgångarna från alltså 22 st
Poängen är löper efter antalet omgångar..

alltså 51 poäng efter 22 spelade matcher..

Nu har jag alltså totalt X antal lag_id i denna array..

Frågan blir alltså:
Kan man sortera denna array till en ny array som har samtliga lagens_id i första segmentet och därefter lagets position i seriesystemet i det andra..

Ex. [5][3] = Lag 5 kom på 3:e plats..

Alltså jämföra samtliga lagens poäng vid varje omgång och spara i en ny array.. Jag vet att det blir lite loopar men jag fattade inte hur jag skulle lösa det

Vet att jag måste inkludera antalet mål etc också.. men detta kommer jag ta hand om sedan.. Ville bara ha en enkel lösning på problemet..

Dies_IraeMedlem sedan aug. 2001159 inlägg
#2

Jag förstår tyvärr inte de där med omgångar och poäng.

Du har alltså $array[lagid][omgång] = poäng.

Du skulle kunna göra såhär om de är som jag gissar.

Vinner första omgången :

$array[lagid][0] = 3; // lagid får 3 poäng för omgång 0 (index)
Förlorar man omgång 1 blir det:
$array[lagid][1] = 0; // 0 poäng till lagid och omgång 1
Och spelar man lika får man tex 1 poäng
$array[lagid][2] = 1;

Nu kan vi ju loopa igenom alla omgångar och skapa en ny array med totalt antal poäng.

lite psuedo:

För varje lag:
Loopa igenom alla element i lag arrayn och sumera
$totalt = $array[lagindex][$loop];

$nyresultatarray[lagindex] = $total;

och sen göra en vanlig sort på den för att få placeringar.

Eller är jag helt ute och cyklar?

Genererad på 412 ms · cache AV · v20260730165559-full.f96bc7eb