Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Riordinare array per differenza valori

    Ciao a tutti.
    Sto scrivendo un software di calcio manageriale che deve fare alcune statistiche stampando una lista ordinata dei risultati in base alla vittoria più alta sulla rivale.
    Non sempre la squadra (in questo caso il Milan) si trova in posizione in casa o fuori casa, quindi devo fare un controllo..

    L'array multidimensionale è questo:

    codice:
    ArrayPartite
    (
        [0] => Array
            (
                [casa] => Milan
                [fuoricasa] => Inter
                [riscasa] => 2
                [risfuoricasa] => 1
            )
    
        [1] => Array
            (
                [casa] => Juventus
                [fuoricasa] => Milan
                [riscasa] => 0
                [risfuoricasa] => 2
            )
    
        [2] => Array
            (
                [casa] => Milan
                [fuoricasa] => Bari
                [riscasa] => 3
                [risfuoricasa] => 1
            )
    )
    Vorrei che l'output per la squadra Milan fosse così:

    1) Milan-Bari: 3-1
    2) Juve-Milan: 0-2
    3) Milan-Inter: 2-1

    Sono arrivato a questo punto:

    Codice PHP:
    foreach($arraypartite as $res) {
            
    if (
    $res[casa]=='Milan') { $sortAux[] = $res[riscasa]-$res[risfuoricasa]; }
    else { 
    $sortAux[] = $res[risfuoricasa]-$res[riscasa]; }    

    array_multisort($sortAuxSORT_DESC$arraypartite); 
    Ma non stampa giusto..
    Dove sto sbagliando?

    Grazie ciao.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: Riordinare array per differenza valori

    E se aggiungessi il campo diffreti?
    codice:
    ArrayPartite
    (
        [0] => Array
            (
                [casa] => Milan
                [fuoricasa] => Inter
                [riscasa] => 2
                [risfuoricasa] => 1
                [diffreti] => 1
            )
    
        [1] => Array
            (
                [casa] => Juventus
                [fuoricasa] => Milan
                [riscasa] => 0
                [risfuoricasa] => 2
                [diffreti] => 2
            )
    
        [2] => Array
            (
                [casa] => Milan
                [fuoricasa] => Bari
                [riscasa] => 3
                [risfuoricasa] => 1
                [diffreti] => 2
            )
    )
    Ti verrebbe più semplice?

  3. #3
    giusto.

    però.. che funzione uso per fare la differenza "assoluta" ?
    nel senso che devo tener conto se Milan è in casa o fuori e sottrarlo al risultato della squadra opposta.

    ci sarà una funzione che me lo permette senza fare ulteriori controlli vero?
    grazie

  4. #4
    Originariamente inviato da davidino80
    giusto.

    però.. che funzione uso per fare la differenza "assoluta" ?
    nel senso che devo tener conto se Milan è in casa o fuori e sottrarlo al risultato della squadra opposta.

    ci sarà una funzione che me lo permette senza fare ulteriori controlli vero?
    grazie
    un po spartano ma funziona:
    Codice PHP:
    $differenza=abs($riscasa-$risfuori

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Perché spartano? abs serve (anche) a questo...

  6. #6
    Originariamente inviato da Alhazred
    Perché spartano? abs serve (anche) a questo...
    hai ragione, grazie, ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.