Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dodawanie wielowymiarowej tablicy
Forum PHP.pl > Forum > Przedszkole
Lirdoner
Witam, mam taki kawałek kodu:
  1. $ar1 = array(1 => array(
  2. 'monday' => array('a', 'b'),
  3. ));
  4. $ar2 = array(1 => array(
  5. 'monday' => array('a', 'b', 'c', 'd'),
  6. ));
  7.  
  8. $ar3 = $ar1 + $ar2;
  9. $ar4 = array_merge($ar1, $ar2);
  10.  
  11. print_r($ar3);
  12. print_r($ar4);


Łącząc tablice $ar1 i $ar2 chciałbym otrzymać wynik taki:
Kod
Array
(
    [1] => Array
        (
            [monday] => Array
                (
                    [0] => a
                    [1] => b
                    [2] => c
                    [3] => d
                )

        )

)


Niestety powyższe sposoby zwracają zły wynik. Jak połączyć te tablice?
Rysh
  1. <?php
  2. $ar1 = array(1 => array(
  3. 'monday' => array('a', 'b'),
  4. ));
  5. $ar2 = array(1 => array(
  6. 'monday' => array('a', 'b', 'c', 'd'),
  7. ));
  8.  
  9. $ar4[1] = array_merge($ar1['1'], $ar2['1']);
  10.  
  11. print_r($ar4);
Lirdoner
Dzięki za odpowiedź jednak dodawane tablice nie muszą kończyć się na indexie 1
trueblue
A jaki wynik ma być jeśli pierwsza tablica będzie zawierać dodatkowo element, np.: 'e'?
Lirdoner
Cytat(nospor @ 9.08.2016, 09:50:03 ) *


Niestety funkcja ta modyfikuje indeksy. W rezultacie mam tablicę która zawiera indeks 0 i indeks 1 który jej poprawny.
Jednak gdy w łączonych tablicach znajdą się indeksy 1 i 5 to wynik będzie zły.

Cytat(trueblue @ 9.08.2016, 10:02:38 ) *
A jaki wynik ma być jeśli pierwsza tablica będzie zawierać dodatkowo element, np.: 'e'?

Wtedy w końcowym wyniku mają być elementy a,b,e,c,d
Pyton_000
Easiest solution:

  1. <?php
  2.  
  3. $ar1 = [
  4. 1 => [
  5. 'monday' => ['a', 'b'],
  6. ],
  7. ];
  8. $ar2 = [
  9. 1 => [
  10. 'monday' => ['a', 'b', 'c', 'd'],
  11. ],
  12. ];
  13.  
  14. $new = [];
  15. foreach ($ar1 as $key => $data) {
  16. if(!isset($ar2[$key]))
  17. continue;
  18.  
  19. $new[$key] = array_merge($ar1[$key], $ar2[$key]);
  20. }
  21.  
  22. print_r($new);
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-2025 Invision Power Services, Inc.