Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z posortowanie tablicy
Mlodycompany
post
Post #1





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witajcie. Otóż chcę posortować pewną tablice najpierw po ilości punktów malejąco, a potem po bilansie też malejąco.
Kod
Array
(
    [1] => Array
        (
            [punkty] => 6
            [bilans] => 26
            [wygrane] => 2
            [mecze] => 6
            [przegrane] => 4
        )

    [2] => Array
        (
            [punkty] => 6
            [bilans] => -28
            [wygrane] => 2
            [mecze] => 4
            [remisy] => 1
            [przegrane] => 1
        )

    [23] => Array
        (
            [punkty] => 3
            [bilans] => -18
            [przegrane] => 2
            [mecze] => 4
            [wygrane] => 1
            [remisy] => 1
        )

    [24] => Array
        (
            [punkty] => 5
            [bilans] => 20
            [wygrane] => 2
            [mecze] => 2
        )

)

Zacząłem kąbinować z funkcja
ale średnio coś to mi wychodziło. Czy moglibyście mi pomóc?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jasin
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Ja proponowałbym użycie funkcji usort dla której można samemu napisać funkcję porównującą.

np.:
  1. function cmp($a, $b)
  2. {
  3. if($a['punkty'] == $b['punkty'])
  4. {
  5. if($a['bilans'] == $b['bilans'])
  6. {
  7. return 0;
  8. }
  9.  
  10. return ($a['bilans'] > $b['bilans']) ? -1 : 1;
  11. }
  12.  
  13. return ($a['punkty'] > $b['punkty']) ? -1 : 1;
  14. }
  15.  
  16. $tab[0]['punkty'] = 6;
  17. $tab[0]['bilans'] = 26;
  18. $tab[1]['punkty'] = 6;
  19. $tab[1]['bilans'] = -28;
  20. $tab[2]['punkty'] = 3;
  21. $tab[2]['bilans'] = -18;
  22. $tab[3]['punkty'] = 5;
  23. $tab[3]['bilans'] = 20;
  24. $tab[4]['punkty'] = 6;
  25. $tab[4]['bilans'] = 12;
  26.  
  27. echo '<pre>';
  28. print_r($tab);
  29. usort($tab, "cmp");
  30. print_r($tab);
  31. echo '</pre>';


Ten post edytował jasin 18.06.2010, 19:21:32
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 12:32