Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sortowanie tablic wielowymiarowych, nie mogę się połapać co robię źle
szachmat
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 3.01.2016

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


Cześć, piszę sobie takiego prostego menadżerka i mam problem z funkcją do sortowania tablicy wielowymiarowej.
O ile bowiem działa mi na dwóch elementach, tak nie mogę jej ustawić na więcej.

na dwóch śmiga:
  1. function porównaj_punkty( $a_suma_punktów,
  2. $b_suma_punktów)
  3. // $c_suma_punktów,
  4. // $d_suma_punktów,
  5. // $e_suma_punktów,
  6. // $f_suma_punktów,
  7. // $g_suma_punktów,
  8. // $h_suma_punktów,
  9. // $i_suma_punktów,
  10. // $j_suma_punktów)
  11. {
  12. if ($a_suma_punktów[2] == $b_suma_punktów[2]) return 0;
  13. else if ($a_suma_punktów[2] < $b_suma_punktów[2]) return 1;
  14. else return -1;
  15. }


na czterech stoi (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)
  1. function porównaj_punkty( $a_suma_punktów,
  2. $b_suma_punktów,
  3. $c_suma_punktów,
  4. $d_suma_punktów)
  5. // $e_suma_punktów,
  6. // $f_suma_punktów,
  7. // $g_suma_punktów,
  8. // $h_suma_punktów,
  9. // $i_suma_punktów,
  10. // $j_suma_punktów)
  11. {
  12. if ($a_suma_punktów[2] == $b_suma_punktów[2])
  13. {
  14. return 0;
  15. }
  16. else if ($a_suma_punktów[2] < $b_suma_punktów[2])
  17. {
  18. return 1;
  19. }
  20. else
  21. {
  22. return -1;
  23. }
  24.  
  25. if ($c_suma_punktów[2] == $d_suma_punktów[2])
  26. {
  27. return 0;
  28. }
  29. else if ($c_suma_punktów[2] < $d_suma_punktów[2])
  30. {
  31. return 1;
  32. }
  33. else
  34. {
  35. return -1;
  36. }
  37. if ($a_suma_punktów[2] == $c_suma_punktów[2])
  38. {
  39. return 0;
  40. }
  41. else if ($a_suma_punktów[2] < $c_suma_punktów[2])
  42. {
  43. return 1;
  44. }
  45. else
  46. {
  47. return -1;
  48. }
  49. if ($b_suma_punktów[2] == $d_suma_punktów[2])
  50. {
  51. return 0;
  52. }
  53. else if ($b_suma_punktów[2] < $d_suma_punktów[2])
  54. {
  55. return 1;
  56. }
  57. else
  58. {
  59. return -1;
  60. }
  61. }



i wyskakuje taki brzydal, że nic nie rozumiem:
  1. Fatal error: Uncaught ArgumentCountError: Too few arguments to function porównaj_punkty(),
  2. 2 passed and exactly 4 expected in C...:379 Stack trace: #0 [internal function]: porównaj_punkty(Array, Array) #1
  3. C..(442): usort(Array, 'por\xC3\xB3wnaj_punkt...') #2 C:...(147): include('C:\\xampp\\htdocs...') #3 {main} thrown in C:\xampp\... on line 379


ok znalazłem problem - dwie ogólne nazwy zmiennych:

  1. function porównaj_punkty($x,$y)
  2. {
  3. if ($x[1] == $y[1]) return 0;
  4. else if ($x[1] < $y[1]) return 1;
  5. else return -1;
  6. }
  7.  


ale się przy tym na-modliłem!

Ten post edytował szachmat 26.12.2017, 22:17:00
Go to the top of the page
+Quote Post

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: 22.08.2025 - 22:02