Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodanie Array te same wartości
winiar789
post 30.05.2018, 12:10:58
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 15.11.2011

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


Siemanko, Cześć smile.gif

Mam oto coś takiego:

1. array
  1.  
  2. (
  3. [83402A/vv/S] => 5
  4. [83402A/vv/M] => 4
  5. [83402A/vv/XL] => 3
  6. [84401A/vv/S] => 1
  7. [84401A/vv/M] => 3
  8. [84401A/vv/L] => 1
  9. [84401A/vv/XL] => 4
  10. [83402A/vv/XS] => 5
  11. [83402A/vv/L] => 5
  12. [84401A/vv/XS] => 5
  13. )
  14.  
  15.  


oraz 2 array

  1.  
  2. (
  3. [83402A/vv/S] => 3
  4. [83402A/vv/M] => 1
  5. [83402A/vv/XL] => 3
  6. [84401A/vv/S] => 21
  7. [84401A/vv/M] => 33
  8. [84401A/vv/L] => 31
  9. [84401A/vv/XL] => 43
  10. [83444A/vv/XS] => 5
  11. [83444A/vv/L] => 5
  12. [84444A/vv/XS] => 5
  13. )
  14.  


Finalnie chciałbym zsumować te same numery z 1 array i 2 array np: [83402A/vv/S] => 3 + [83402A/vv/S] => 5 = [83402A/vv/S] => 8
a jeżeli nie ma w którymś array to pokaż tylko wartość która jest np to : [83444A/vv/XS] => 5

Pomożecie questionmark.gif? smile.gif biggrin.gif

Coś takiego chciałbym zobaczyć

  1.  
  2.  
  3. (
  4. [83402A/vv/S] => 8
  5. [83402A/vv/M] => 5
  6. [83402A/vv/XL] => 6
  7. [84401A/vv/S] => 22
  8. [84401A/vv/M] => 36
  9. [84401A/vv/L] => 34
  10. [84401A/vv/XL] => 44
  11. [83402A/vv/XS] => 5
  12. [83402A/vv/L] => 5
  13. [84401A/vv/XS] => 5
  14. [83444A/vv/XS] => 5
  15. [83444A/vv/L] => 5
  16. [84444A/vv/XS] => 5
  17. )
  18.  
  19.  


Ten post edytował winiar789 30.05.2018, 12:13:56
Go to the top of the page
+Quote Post
Pyton_000
post 30.05.2018, 12:23:10
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


najpierw musisz zrobić merge kluczy z obu tablic tak żeby wynikowa miała wszystkie unikalne klucze
potem iterujesz po tej tablicy sprawdzając czy klucz jest w 1-sze , dodajesz wartość, a potem to samo dla klucza z 2-giej

done smile.gif
Go to the top of the page
+Quote Post
winiar789
post 30.05.2018, 12:28:51
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 15.11.2011

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


O masz smile.gif teoretycznie rozumiem w praktyce zrobiłem

  1.  
  2. $polacz_dwa = array_merge($Tab1, $Tab2);
  3.  
  4.  


i dalej stoje np. gdybyś mi na przykładzie pokazał szybciej to zaczaje
Go to the top of the page
+Quote Post
Pyton_000
post 30.05.2018, 12:33:38
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Miłej lektury: https://stackoverflow.com/questions/6086267...e-merged-values
Go to the top of the page
+Quote Post
aras785
post 30.05.2018, 13:05:30
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Na szybko:

  1. <?php
  2.  
  3. $tab1 = ['aa'=>2,'bb'=>3,'dd'=>10];
  4. $tab2 = ['aa'=>5,'bb'=>5,'cc'=>2];
  5.  
  6. $new = [];
  7. foreach($tab1 as $k=>$v) {
  8. if(array_key_exists($k, $tab2)) $new[$k] = $v+$tab2[$k];
  9. }
  10. $new = array_merge($new,array_diff_key($tab1, $tab2),array_diff_key($tab2, $tab1));
  11.  
  12. var_dump($new);

http://sandbox.onlinephpfunctions.com/code...88b06ef099db723

i ze stackoverflow ciekawe rozwiąznaie:

  1. <?php
  2.  
  3. $tab1 = ['aa'=>2,'bb'=>3,'dd'=>10];
  4. $tab2 = ['aa'=>5,'bb'=>5,'cc'=>2];
  5.  
  6. $sums = array();
  7. foreach (array_keys($tab1 + $tab2) as $key) {
  8. $sums[$key] = (isset($tab1[$key]) ? $tab1[$key] : 0) + (isset($tab2[$key]) ? $tab2[$key] : 0);
  9. }
  10.  
  11. var_dump($sums);

http://sandbox.onlinephpfunctions.com/code...20d1d5a60bb4ca2

hehe @Pyton_000 wrzuciłeś właśnie ten przykład smile.gif

Ten post edytował aras785 30.05.2018, 13:12:18
Go to the top of the page
+Quote Post
winiar789
post 30.05.2018, 13:31:21
Post #6





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 15.11.2011

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


Dokładnie wykorzystałem to

  1. $sums = array();
  2. foreach (array_keys($tab1 + $tab2) as $key) {
  3. $sums[$key] = (isset($tab1[$key]) ? $tab1[$key] : 0) + (isset($tab2[$key]) ? $tab2[$key] : 0);
  4. }



Dzięki chłopaki exclamation.gif!!!!!!!!!!!! dobrego weekendu
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 - 10:31