• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

połączenie trzech tablic

0 głosów
83 wizyt
pytanie zadane 10 stycznia 2019 w PHP przez niezalogowany
edycja 11 stycznia 2019
["itemsid"]=>
  array(2) {
    [0]=>
    string(1) "6"
    [1]=>
    string(2) "12"
  }
  ["title"]=>
  array(2) {
    [0]=>
    string(3) "string1title"
    [1]=>
    string(7) "string2title"
  }
  ["url"]=>
  array(2) {
    [0]=>
    string(4) "string1url"
    [1]=>
    string(7) "strong2url"
  }

Hej, czy ktoś może mi podpowiedzieć w jaki sposób połączyć te tablice ze sobą?
Probówałem używać array_merge_recursive ale niestety na tak niskich kluczach to nie działa.

Chciałbym je połaczyć po tych kluczach wewnętrznych czyli 0 oraz 1.

 

 

// EDIT!

Rozkminiłem to w mniej więcej taki sposób:

$arrmerge['itemsid'][$key."x"] = $postData['itemsid'][$key];

Podmiana klucza na taki ze znakiem innym niż liczba :)

Gotowe rozwiązanie:
 

    function makeArraysMerge($post){
        foreach($post as $key => $data){
            switch($key){
                case 'itemsid':
                case 'title':
                case 'url':
                    foreach($postData[$key] as $keyj => $value){
                        $arrmerge[$key][$keyj."x"] = $postData[$key][$keyj];
                        unset($postData[$key][$keyj]);
                    }
                    break;
            }
        }
        return array_merge_recursive( $arrmerge['itemsid'], $arrmerge['title'], $arrmerge['url']);
    }

Ale może ktoś będzie miał lepszy pomysł

 

1 odpowiedź

0 głosów
odpowiedź 11 stycznia 2019 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

Rozumiem, chodzi Ci o takie połączenie, jeżeli o taką strukturę Ci chodzi:

array(6) {
  [0]=>
  string(1) "6"
  [1]=>
  string(2) "12"
  [2]=>
  string(12) "string1title"
  [3]=>
  string(12) "string2title"
  [4]=>
  string(10) "string1url"
  [5]=>
  string(10) "strong2url"
}

Jeżeli, tak to musisz użyć funkcji:

array_merge($array1["itemsid"], $array2["title"], $array3["url"]);

i odwołać się do kluczy w tablicy asocjacyjnej, wtedy łączysz zawartości tablicy.

komentarz 11 stycznia 2019 przez niezalogowany
nie do konca chodzi mi o to aby tablice polaczyly sie na podstawie kluczy wewnętrznych czyli tylko 0 oraz 1

do 0 nalezaloby 6, string1title, string1url

a do 1 te kolejne wartosci
komentarz 11 stycznia 2019 przez niezalogowany
tez może być, jednakże rozwiązanie z mojego pierwszego wpisu jest dla mnie wystarczająco dobre tak mi sie wydaje , chyba ze masz inne zdanie to chętnie sie dowiem dla

Podobne pytania

0 głosów
2 odpowiedzi 199 wizyt
pytanie zadane 28 listopada 2018 w PHP przez s4bek Użytkownik (600 p.)
0 głosów
3 odpowiedzi 162 wizyt

86,484 zapytań

135,240 odpowiedzi

300,482 komentarzy

57,230 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...