Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tablica dodanie wartości i posortowanie
kielich
post 5.03.2013, 14:13:25
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


Witam serdecznie,
Bardzo prosiłbym o pomoc jak mógłbym posortować tablicę aby nie dostać dubli tylko jedno pytanie z dodaną ilością odpowiedzi. Pracuję nad tym od 3H i nie umiem sobie z tym poradzić. Moja tablica wygląda następująco.

  1. 0 =>
  2. 'odp' => string 'cztery' (length=6)
  3. 1 =>
  4. 'ilosc' => int 1
  5. 2 =>
  6. 'odp' => string 'pi-' (length=3)
  7. 3 =>
  8. 'ilosc' => int 0
  9. 4 =>
  10. 'odp' => string 'sze-' (length=4)
  11. 5 =>
  12. 'ilosc' => int 0
  13. 6 =>
  14. 'odp' => string 'jeden' (length=5)
  15. 7 =>
  16. 'ilosc' => int 1
  17. 8 =>
  18. 'odp' => string 'dwa' (length=3)
  19. 9 =>
  20. 'ilosc' => int 0
  21. 10 =>
  22. 'odp' => string 'trzy' (length=4)
  23. 11 =>
  24. 'ilosc' => int 0
  25. 12 =>
  26. 'odp' => string 'cztery' (length=6)
  27. 13 =>
  28. 'ilosc' => int 1
  29. 14 =>
  30. 'odp' => string 'pi-' (length=3)
  31. 15 =>
  32. 'ilosc' => int 0
  33. 16 =>
  34. 'odp' => string 'sze-' (length=4)
  35. 17 =>
  36. 'ilosc' => int 0
  37. 18 =>
  38. 'odp' => string 'jeden' (length=5)
  39. 19 =>
  40. 'ilosc' => int 1
  41. 20 =>
  42. 'odp' => string 'dwa' (length=3)
  43. 21 =>
  44. 'ilosc' => int 0
  45. 22 =>
  46. 'odp' => string 'trzy' (length=4)
  47. 23 =>
  48. 'ilosc' => int 0


Czyli jak widać po prostu tab jest x2. A ja chciałbym ją mieć w takiej postaci

  1. 0 =>
  2. 'odp' => string 'cztery' (length=6)
  3. 1 =>
  4. 'ilosc' => int 2
  5. 2 =>
  6. 'odp' => string 'pi-' (length=3)
  7. 3 =>
  8. 'ilosc' => int 0
  9. 4 =>
  10. 'odp' => string 'sze-' (length=4)
  11. 5 =>
  12. 'ilosc' => int 0
  13. 6 =>
  14. 'odp' => string 'jeden' (length=5)
  15. 7 =>
  16. 'ilosc' => int 2
  17. 8 =>
  18. 'odp' => string 'dwa' (length=3)
  19. 9 =>
  20. 'ilosc' => int 0
  21. 10 =>
  22. 'odp' => string 'trzy' (length=4)
  23. 11 =>
  24. 'ilosc' => int 0
  25.  
  26.  

z góry dzięuje za pomoc


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
nospor
post 5.03.2013, 14:15:37
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale może pokaż jak generujesz tę tablicę bo błąd zapewne jest tam.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kielich
post 5.03.2013, 14:27:23
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


bład nie leży w generowaniu tablicy , chyba że jest jakiś inny, bardziej wydajnieszy i lepszy ?
  1. foreach($questions as $mpmm) {
  2. $queSer = unserialize($mpmm->statistics);
  3.  
  4. foreach($queSer as $serializeQue => $qu){
  5. // if(in_array($serializeQue, $isS)){
  6. // $addS[]['odp'] = $serializeQue;
  7. // $addS[]['ilosc'] = $qu;
  8. // }else{
  9. // $isS[] = $serializeQue;
  10. //
  11. // }
  12. $addS[]['odp'] = $serializeQue;
  13. $addS[]['ilosc'] = $qu;
  14. }
  15.  
  16. }


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
nospor
post 5.03.2013, 14:29:43
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat(nospor)
No ale może pokaż jak generujesz tę tablicę bo błąd zapewne jest tam.

Cytat(kielich)
bład nie leży w generowaniu tablicy

Skoro dostajesz złą tablicę, to chyba oczywiste, że błąd leży w jej generowaniu.... Dobra, na dziś mam dosyć osób co to wiedzą lepiej.... po co więc na to forum przychodzą?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kielich
post 5.03.2013, 14:32:14
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


Po to że nie wiedzą wszystkiego, to raz a dwa mogę uzyskać lepszy pomysł od innych czasem nie zawsze bardziej doświadczonych, ale nie o to chodzi. Po prostu poprsiłem o pomoc.


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
nospor
post 5.03.2013, 14:35:06
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A ja ci udzieliłem wskazówki co jest przyczyną, na co ty, że to napewno nie to, podczas gdy to właśnie na pewno to.... źle generujesz tablicę i to tu masz szukać rozwiązania problemu, a nie w jakimś późniejszym sortowaniu i usuwaniu duplikatów. Tak też można, oczywiście, ale czemu nie poprawić źródła problemu zamiast jego objawów?
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kielich
post 5.03.2013, 14:39:06
Post #7





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


Ok w takim razie, możesz mi powiedzieć jak mógłbym to zrobić aby dostać oczekiwany wynik.
zmienna $queSer = unserialize($mpmm->statistics); daj mi wartość

  1. 'cztery' => int 1
  2. 'pi-' => int 0
  3. 'sze-' => int 0
  4.  
  5. 'jeden' => int 1
  6. 'dwa' => int 0
  7. 'trzy' => int 0
  8.  
  9. 'cztery' => int 1
  10. 'pi-' => int 0
  11. 'sze-' => int 0
  12.  
  13. 'jeden' => int 1
  14. 'dwa' => int 0
  15. 'trzy' => int 0
  16.  


z

  1. foreach($questions as $mpmm) {
  2. $queSer = unserialize($mpmm->statistics);
  3.  
  4. var_dump($queSer);
  5. }


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
nospor
post 5.03.2013, 14:42:26
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sprawa jest stosunkowo prosta. Ale ja swoje stanowisko wyraziłem w swoim drugim poście tegoż tematu.

ALe nie martw się, skoro już wiemy gdzie jest błąd, na pewno znajdzie się ktoś kto to rozwiąże smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kielich
post 5.03.2013, 14:46:59
Post #9





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


nospor - Dziękuję mimo wszystko.


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
markonix
post 5.03.2013, 14:59:49
Post #10





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Ogólnie struktura tablicy którą chcesz stworzyć jest mało logiczna.
Powstała tablica powinna być tablicą (listą) tablic (bądź obiektów) o strukturze:
['odp']
['ilosc']
gdzie kluczem (jeśli nie ma jakiegoś ID pytania) powinna być inkrementowana liczba ($i).
Inkrementacja raz na obrót pętli. Zostawiając pusty nawias [] tworzysz każdorazowo nowy indeks.


--------------------
Go to the top of the page
+Quote Post
kielich
post 5.03.2013, 15:02:11
Post #11





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


Dzięki, lecz to mi nic nie mówi co mógłbym przełożyć na praktyczny kod. ;(


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
_Borys_
post 5.03.2013, 16:45:34
Post #12





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


How to sum values of the array of the same key
Trzecia odpowiedź na zsumowanie twojego $queSer.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:04