Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Utknąłem z tablicą pomocy
ZenekN
post 22.02.2021, 17:19:20
Post #1





Grupa: Zarejestrowani
Postów: 418
Pomógł: 5
Dołączył: 7.08.2012

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


Witam mam tablice w takiej postaci

  1. array (size=2)
  2. 'id1' =>
  3. array (size=7)
  4. 0 => int 69997
  5. 1 => int 69997
  6. 2 => int 72047
  7. 3 => int 72784
  8. 4 => int 72699
  9. 5 => int 72699
  10. 6 => int 72699
  11. 'ilosc' =>
  12. array (size=7)
  13. 0 => int 0
  14. 1 => int 0
  15. 2 => int 0
  16. 3 => int 0
  17. 4 => int 4
  18. 5 => int 4
  19. 6 => int 1


potrzebuje aby output wyglądał w ten sposób że dla tych samych id1 sumowała sie łączna z tablicy ilość

  1.  
  2.  
  3. [php]
  4. array (size=2)
  5. 'id1' =>
  6. array (size=7)
  7. 0 => int 69997
  8. 1 => int 72047
  9. 2 => int 72784
  10. 3 => int 72699
  11.  
  12. 'ilosc' =>
  13. array (size=7)
  14. 0 => int 0
  15. 1 => int 0
  16. 2 => int 0
  17. 3 => int 9
  18.  

albo w ten sposób
  1.  
  2.  
  3. 69997 => 0
  4. 72047 => 0
  5. 72784 => 0
  6. 72699 => 9
  7.  
  8.  
  9.  


zrobiłem

  1. foreach($zzs as $zzk => $zzv) {
  2.  
  3. $s[] = array($zzv['id1'] => $zzv['ilosc']);
  4. }
  5. foreach($s as $t => $z) {
  6. foreach($z as $l => $p) {
  7. $xt[$l] += $p;
  8. }
  9. }


Ten post edytował ZenekN 22.02.2021, 11:24:50
Go to the top of the page
+Quote Post
nospor
post 22.02.2021, 17:21:38
Post #2





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




Nazewnictwo zmiennych powala. Nastepnym razem uzyj laciny, bedzie jeszzcze trudniej sie polapac wink.gif

No ale twoj kod nie robi tego co chciales pierwotnie

edit: dobra, robi. Nie widzialem wczesniej tego ALBO wink.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
LowiczakPL
post 22.02.2021, 18:58:24
Post #3





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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



  1. $nowaTablica = array_count_values($liczonaTablica);


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
nospor
post 23.02.2021, 10:37:42
Post #4





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




@ LowiczakPL I jak to sie ma do problemu procz faktu ze nic a nic? wink.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
Malinaa
post 2.03.2021, 23:44:32
Post #5





Grupa: Zarejestrowani
Postów: 517
Pomógł: 6
Dołączył: 21.07.2008

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


Można tak:

  1. <?php
  2.  
  3. $arrayData = array(
  4. 'id' => array(
  5. 0 => 69997,
  6. 1 => 69997,
  7. 2 => 72047,
  8. 3 => 72784,
  9. 4 => 72699,
  10. 5 => 72699,
  11. 6 => 72699
  12. ),
  13. 'quantity' => array(
  14. 0 => 0,
  15. 1 => 0,
  16. 2 => 0,
  17. 3 => 0,
  18. 4 => 4,
  19. 5 => 4,
  20. 6 => 1
  21. )
  22. );
  23.  
  24. $value = 0;
  25. $arrayId = array();
  26. $arrayQty = array();
  27. $arrayCount = array();
  28. $arrayResult = array();
  29.  
  30. foreach ($arrayData as $value) {
  31. foreach ($value as $k => $v) {
  32. if (!in_array($v[$k], $value)) {
  33. $arrayId[] = $v;
  34. }
  35. else {
  36. $arrayQty[] = $v;
  37. }
  38. }
  39. }
  40.  
  41. foreach ($arrayId as $key => $value) {
  42. if (array_key_exists($value, $arrayCount)) {
  43. $arrayResult[$value] = $arrayCount[$value] + $arrayQty[$key];
  44. }
  45.  
  46. $arrayCount[$value] = $arrayQty[$key];
  47. $arrayCount[$value] = $arrayCount[$value] + $arrayQty[$key];
  48.  
  49. if (!isset($arrayResult[$value])) $arrayResult[$value] = $arrayCount[$value] + $arrayQty[$key];
  50. }
  51.  
  52. echo '<pre>';
  53. print_r($arrayData);
  54. echo '</pre>';
  55. echo '<hr>';
  56. echo '<pre>';
  57. print_r($arrayResult);
  58. echo '</pre>';
  59.  
  60. ?>


Z podanej tablicy tworzę dwie, następnie zliczam ilość dla wartości id.

Ten post edytował Malinaa 2.03.2021, 23:52:32


--------------------
I welcome you on the Internet >>> Design by Malina
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: 29.03.2024 - 05:47