Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Obliczanie poziomów w tablicy
Forum PHP.pl > Forum > PHP
styryl
Mam tablice:

  1.  
  2. (
  3. [0] => Array
  4. (
  5. [id] => 6
  6. [poziom] => 1
  7. )
  8.  
  9. [1] => Array
  10. (
  11. [id] => 9
  12. [poziom] => 2
  13. )
  14.  
  15. [2] => Array
  16. (
  17. [id] => 10
  18. [poziom] => 2
  19. )
  20.  
  21. [3] => Array
  22. (
  23. [id] => 11
  24. [poziom] => 2
  25. )
  26.  
  27. [4] => Array
  28. (
  29. [id] => 12
  30. [poziom] => 3
  31. )
  32.  
  33. [5] => Array
  34. (
  35. [id] => 13
  36. [poziom] => 3
  37. )
  38.  
  39. [6] => Array
  40. (
  41. [id] => 14
  42. [poziom] => 3
  43. )
  44.  
  45. [7] => Array
  46. (
  47. [id] => 7
  48. [poziom] => 1
  49. )
  50.  
  51. [8] => Array
  52. (
  53. [id] => 8
  54. [poziom] => 1
  55. )
  56.  
  57. )
  58.  


oraz mam jakąś liczbę równą bądź wiekszą od 0. Chce zrobić tak aby klucz 'poziom' został zamieniony zgodnie z regułą. Od najnższego poziomu w tablicy + 1 (czyli np: wszsytkie poziomy równe 2 (o ile jest to poziom najniższy ze wszsytkich w tablicy) mają być większe o 1 a każy następny wyższy poziom + 2 potem jeszcze wyższy + 3 itd) względem liczby którą mamy zdefiniowaną wcześniej czyli tą równą bądź większą niż 0.

Czyli gdybyśmy mieli zdefiniowaną wcześniej liczbę równą 3 to powyższa tablica powinna wyglądać tak:

  1.  
  2. (
  3. [0] => Array
  4. (
  5. [id] => 6
  6. [poziom] => 1 // najniższy poziom więć 3 + 1 = 4
  7. )
  8.  
  9. [1] => Array
  10. (
  11. [id] => 9
  12. [poziom] => 2 // poziom wyższy czyli 3 + 2 = 5
  13. )
  14.  
  15. [2] => Array
  16. (
  17. [id] => 10
  18. [poziom] => 2 // poziom wyższy czyli 3 + 2 = 5
  19. )
  20.  
  21. [3] => Array
  22. (
  23. [id] => 11
  24. [poziom] => 2 // poziom wyższy czyli 3 + 2 = 5
  25. )
  26.  
  27. [4] => Array
  28. (
  29. [id] => 12
  30. [poziom] => 3 // poziom najwyższy czyli 3+3 = 6
  31. )
  32.  
  33. [5] => Array
  34. (
  35. [id] => 13
  36. [poziom] => 3 // poziom najwyższy czyli 3+3 = 6
  37. )
  38.  
  39. [6] => Array
  40. (
  41. [id] => 14
  42. [poziom] => 3 // poziom najwyższy czyli 3+3 = 6
  43. )
  44.  
  45. [7] => Array
  46. (
  47. [id] => 7
  48. [poziom] => 1 // najniższy poziom więć 3 + 1 = 4
  49. )
  50.  
  51. [8] => Array
  52. (
  53. [id] => 8
  54. [poziom] => 1 // najniższy poziom więć 3 + 1 = 4
  55. )
  56.  
  57. )



Nie wiem jak się do tego zabrać. Mam nadzieje że ktoś z was będzie miał pomysł jak to rozwiąząc. Pzdr
kalmaceta
1. usort()
2a. pętla foreach +
2b. sprawdzanie i zapamiętywanie lvl
2c. aktualizacja poziom + lvl
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.