Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie Array te same wartości
Forum PHP.pl > Forum > PHP
winiar789
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.  
Pyton_000
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
winiar789
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
Pyton_000
Miłej lektury: https://stackoverflow.com/questions/6086267...e-merged-values
aras785
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
winiar789
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
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-2024 Invision Power Services, Inc.