Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHP - pętle
Forum PHP.pl > Forum > Przedszkole
jeremieblanc
Witam,

ostatnio bardzo rzadko korzystałem z pętli i wychodzi na to, że nie potrafię rozwiązać wydaje mi się banalnego problemu.

Otóż mam 4 zmienne $A,$B,$C,$D, które mają przypisane wartości. Chciałbym aby wszystkie wartości zostały porównane i posortowane w kolejności od największej do najmniejszej. Przy czym wartości największej została przypisana zmienna $first, $second, $third, $fourth - przy czym najważniejsze jest to aby wypisać, że największą wartość posiada $A i wtedy jej wartość.

Drugim problemem jest to, że w przypadku gdy $A i $B mają tyle samo punktów, aby o pozycji decydowały zmienne poboczne np. $A1,$B1,$B2.

Ehh sad.gif
IProSoft
Pokaż co masz do tej pory napisane.
jeremieblanc
  1. $brazylia_mecz1 = $_POST['bra1'];
  2. $chorwacja_mecz1 = $_POST['cho1'];
  3. $meksyk_mecz1 = $_POST['mek1'];
  4. $kamerun_mecz1 = $_POST['kam1'];
  5. $brazylia_mecz2 = $_POST['bra2'];
  6. $meksyk_mecz2 = $_POST['mek2'];
  7. $kamerun_mecz2 = $_POST['kam2'];
  8. $chorwacja_mecz2 = $_POST['cho2'];
  9. $kamerun_mecz3 = $_POST['kam3'];
  10. $brazylia_mecz3 = $_POST['bra3'];
  11. $chorwacja_mecz3 = $_POST['cho3'];
  12. $meksyk_mecz3 = $_POST['mek3'];
  13. $array_check = array($brazylia_mecz1,$brazylia_mecz2,$brazylia_mecz3,
  14. $chorwacja_mecz1,$chorwacja_mecz2,$chorwacja_mecz3,
  15. $meksyk_mecz1,$meksyk_mecz2,$meksyk_mecz3,
  16. $kamerun_mecz1,$kamerun_mecz2,$kamerun_mecz3);
  17. foreach ($array_check as& $key)
  18. {
  19. if(is_numeric($key))
  20. {
  21. $key=$key;
  22. }
  23. else
  24. {
  25. $key=0;
  26. }
  27. }
  28. $brazylia_mecz1 = $array_check[0];
  29. $brazylia_mecz2 = $array_check[1];
  30. $brazylia_mecz3 = $array_check[2];
  31. $chorwacja_mecz1 = $array_check[3];
  32. $chorwacja_mecz2 = $array_check[4];
  33. $chorwacja_mecz3 = $array_check[5];
  34. $meksyk_mecz1 = $array_check[6];
  35. $meksyk_mecz2 = $array_check[7];
  36. $meksyk_mecz3 = $array_check[8];
  37. $kamerun_mecz1 = $array_check[9];
  38. $kamerun_mecz2 = $array_check[10];
  39. $kamerun_mecz3 = $array_check[11];
  40. $brazylia=0;
  41. $chorwacja=0;
  42. $kamerun=0;
  43. $meksyk=0;
  44. if($brazylia_mecz1>$chorwacja_mecz1)
  45. {
  46. $brazylia=$brazylia+3;
  47.  
  48. }
  49. elseif ($brazylia_mecz1<$chorwacja_mecz1)
  50. {
  51. $chorwacja=$chorwacja+3;
  52. }
  53. else
  54. {
  55. $brazylia=$brazylia+1;
  56. $chorwacja=$chorwacja+1;
  57. }
  58. if ($meksyk_mecz1>$kamerun_mecz1)
  59. {
  60. $meksyk=$meksyk+3;
  61. }
  62.  
  63. elseif ($meksyk_mecz1<$kamerun_mecz1)
  64. {
  65. $kamerun=$kamerun+3;
  66. }
  67. else
  68. {
  69. $meksyk=$meksyk+1;
  70. $kamerun=$kamerun+1;
  71. }
  72.  
  73. if ($brazylia_mecz2>$meksyk_mecz2)
  74. {
  75. $brazylia=$brazylia+3;
  76. }
  77. elseif ($brazylia_mecz2<$meksyk_mecz2)
  78. {
  79. $meksyk=$meksyk+3;
  80. }
  81. else
  82. {
  83. $brazylia=$brazylia+1;
  84. $meksyk=$meksyk+1;
  85. }
  86.  
  87. if ($kamerun_mecz2>$chorwacja_mecz2)
  88. {
  89. $kamerun=$kamerun+3;
  90. }
  91. elseif ($kamerun_mecz2<$chorwacja_mecz2)
  92. {
  93. $chorwacja=$chorwacja+3;
  94. }
  95. else
  96. {
  97. $kamerun=$kamerun+1;
  98. $chorwacja=$chorwacja+1;
  99. }
  100.  
  101. if ($kamerun_mecz3>$brazylia_mecz3)
  102. {
  103. $kamerun=$kamerun+3;
  104. }
  105. elseif ($kamerun_mecz3<$brazylia_mecz3)
  106. {
  107. $brazylia=$brazylia+3;
  108. }
  109. else
  110. {
  111. $kamerun=$kamerun+1;
  112. $brazylia=$brazylia+1;
  113. }
  114.  
  115. if ($meksyk_mecz3>$chorwacja_mecz3)
  116. {
  117. $meksyk=$meksyk+3;
  118. }
  119.  
  120. elseif ($meksyk_mecz3<$chorwacja_mecz3)
  121. {
  122. $chorwacja=$chorwacja+3;
  123. }
  124. else
  125. {
  126. $meksyk=$meksyk+1;
  127. $chorwacja=$chorwacja+1;
  128. }
  129. $array_final_position = array ("Brazylia"=>$brazylia,"Chorwacja"=>$chorwacja,"Meksyk"=>$meksyk,"Kamerun"=>$kamerun);
  130. arsort($array_final_position);
  131. echo var_dump($array_final_position);

Teraz trzeba wyciągnąć to kto jest zwycięzcą itd. i przypisać do odpowiednich zmiennych. Później zrobić, żeby jeszcze bramki były brane pod uwagę.
Na końcu generowanie tabeli z wynikami.
YourFrog
  1. <?php
  2.  
  3. $arr = [33, 11, 55, 22];
  4. rsort($arr);
  5.  
  6. list($first, $second, $thirth, $fourth) = $arr;
  7.  
  8.  
  9. var_dump($arr);
  10. var_dump($first, $second, $thirth, $fourth);


Co do zmiennych pobocznych to zamiast rsort użyj jednej z metod które pozwalają definiować własne metody sortujące np usort.
jeremieblanc

Dzięki wielkie za nakierowanie i zamieszczony kod. Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.