Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zliczanie ilośći rekordów w tablicy
Bondar91
post 15.04.2019, 11:06:35
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.01.2014

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


Witam,

mam pytanko, pracuję nad pewną funkcjonalnością. Dostaje sobię tablicę taka:
  1. object(stdClass)#21 (2) {
  2. ["prod_id"]=>
  3. array(5) {
  4. [0]=>
  5. string(4) "2016"
  6. [1]=>
  7. string(4) "2016"
  8. [2]=>
  9. string(4) "9026"
  10. [3]=>
  11. string(4) "9025"
  12. [4]=>
  13. string(4) "2016"
  14. }
  15. ["status"]=>
  16. array(5) {
  17. [0]=>
  18. string(4) "SUCCESS"
  19. [1]=>
  20. string(4) "A"
  21. [2]=>
  22. string(4) "B"
  23. [3]=>
  24. string(4) "SUCCESS"
  25. [4]=>
  26. string(4) "B"
  27. }
  28. }


Chciałbym zliczyć np. prod_id o danym numerze ile ma statusów SUCCESS ile ma statusów B itd. Jak to najlepiej wykonać. Zrobiłem coś takiego ale myślę czy dobre rozwiązanie:
  1. $data - ta zmienna przechowuje tablicę obiektów
  2. $prod_id = $_POST['prod_id'];
  3. $status_success = ["SUCCESS"];
  4.  
  5. for($i=0; $i<=count($data->prod_id)-1; $i++)
  6. {
  7. if( $data->prod_id[$i] == $prod_id )
  8. {
  9. if(in_array($data->status[$i], $status_success))
  10. {
  11. $success[] = count($data->status[$i]);
  12.  
  13. }
  14. }
  15. }

Dodatkowo jeżeli założmy nie wystąpi status success a chcę to zmienna przekazać do widoku to jak najlepiej to zrobić dać else i przypisać 0 czy jest jakiś inny sposób smile.gif? Z góry dzięki za odpowiedzi

Ten post edytował Bondar91 15.04.2019, 11:08:15
Go to the top of the page
+Quote Post
nospor
post 15.04.2019, 12:02:10
Post #2





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
Zrobiłem coś takiego ale myślę czy dobre rozwiązanie:
A dziala? Bo nie wyglada, wiec nie, niedobre.

np tu
$success[] = count($data->status[$i]);
Co to ma niby zliczac? Bo z tego co widze to $data->status[$i] to tekst, wiec czemu robisz count na tym?



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

"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
Bondar91
post 15.04.2019, 12:38:45
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.01.2014

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


Zgadza sie, tutaj miałem bład, poprawiłem to na :
  1. if(in_array($data->status[$i], $status_success))
  2. {
  3. $success[] = $data->status[$i];
  4. }


Po forze zrobiłem
  1. $count_success = count($success);


I teraz ładnie zlicza, czy dobrym rozwiazaniem będzie danie else i do zmiennej $success[] przypisanie pustej tablicy?
Go to the top of the page
+Quote Post
nospor
post 15.04.2019, 13:58:07
Post #4





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
czy dobrym rozwiazaniem będzie danie else i do zmiennej $success[] przypisanie pustej tablicy?
Po co? Zainicjalizuj pusta tablice przed petla i juz. Albo zostanie wypelniona albo nie. ELSE do niczego tu juz potrzeny nie jest


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

"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

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: 16.04.2024 - 21:20