Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] sortowanie
bemol
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Mam problem z posortowaniem wartości z formularza. A mianowicie moja funkcja sortująca bierze jedną ze zmiennych tablicowych (liczbę) za text - string.

sprawdzić można na: http://usersstats.yoyo.pl

a teraz plik:
create.php
  1. <?php
  2.  
  3. function msort($array, $id="id") {
  4. $temp_array = array();
  5. while(count($array)>0) {
  6. $lowest_id = 0;
  7. $index=0;
  8. foreach ($array as $item) {
  9. if ($item[$id]<$array[$lowest_id][$id]) {
  10. $lowest_id = $index;
  11. }
  12. $index++;
  13. }
  14. $temp_array[] = $array[$lowest_id];
  15. $array = array_merge(array_slice($array, 0,$lowest_id), array_slice($array, $lowest_id+1));
  16. }
  17. return $temp_array;
  18. }
  19.  
  20. $uni = $_POST['uni'];
  21. $nick = $_POST['nick'];
  22. $sojusz = $_POST['sojusz'];
  23. $punkty = $_POST['punkty'];
  24. $rw = $_POST['rw'];
  25. $liczba_porzadkowa = 1;
  26. $inc = 1;
  27.  
  28. for($i=0; $i<count($nick); $i++)
  29. {
  30. if ($nick[$i] == "") continue;
  31. $data[] = array("nick"=>$nick[$i],"sojusz"=>$sojusz[$i],"punkty"=>$punkty[$i],"rw"=>$rw[$i]);
  32. $sdata[] = array("nick"=>$nick[$i],"sojusz"=>$sojusz[$i],"punkty"=>$punkty[$i],"rw"=>$rw[$i]);
  33. }
  34. $data = msort($data,"punkty");
  35. $sdata = msort($sdata,"rw");
  36. echo "
    SEEK AND DESTROY: UNI $uni STATYSTYKI GRACZY
    "
    ;
  37. echo "<br><br><br>";
  38. echo "Statystka wg %
      ";
  39. echo "<br><br>";
  40.  
  41. for($i=count($data)-1; $i>=0; $i--)
  42. {
  43. echo "
  44. {$liczba_porzadkowa}.{$data[$i]['nick']} [{$data[$i]['sojusz']}color=red]][/color]] - {$data[$i]['punkty']} % - {$data[$i]['rw']} RW <br>";
  • $liczba_porzadkowa++;
  • } 
  • echo "
  • ";
  • echo "<br>Statystka wg liczby RW<br>
      ";
  • for($i=count($sdata)-1; $i>=0; $i--)
  • {
  • echo "
  • {$inc}.{$sdata[$i]['nick']} [{$sdata[$i]['sojusz']}color=red]][/color]] - {$sdata[$i]['rw']} RW - {$sdata[$i]['punkty']} % <br>";
  • $inc++;
  • }
  • echo "
  • ";
  • ?>


  • Ten post edytował bemol 6.07.2007, 10:35:21

    --------------------
    Tym ludziom zaufałem i dobrze na tym wyszedłem:
    kresh
    Darti
    piotrekkr
    Bez nich wiele bym nie zrobił. Dzięki im za to!
    Go to the top of the page
    +Quote Post
    UDAT
    post
    Post #2





    Grupa: Zarejestrowani
    Postów: 442
    Pomógł: 0
    Dołączył: 27.12.2005

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


    Zamiast pisać własną funkcję sortującą użyj usort" title="Zobacz w manualu PHP" target="_manual
    Go to the top of the page
    +Quote Post

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

     



    RSS Aktualny czas: 22.08.2025 - 03:45