Łączenie tablic w PHP
03 listopada 2007
Bywa tak, że trzeba połączyć dwie (lub więcej) tablice w PHP. Jak tego dokonać? Są dwa sposoby. Różnice między nimi są malutkie aczkolwiek bardzo istotne i trzeba o nich pamiętać.
Pierwsza metoda to użycie zwykłego znaku dodawania. Tak! W PHP można po prostu sumować ze sobą tablice. Wygląda to tak:
-
$newArray = $array1 + $array2;
Drugi sposób to funkcja array_merge(). Użycie:
Obie metody łączą ze sobą dwie lub więcej tablic. Ale co się dzieje gdy w łączonych tablicach są takie same klucze?
Klucze tekstowe
Metoda pierwsza (dodawanie): jeżeli klucze tekstowe się powtarzają to w wynikowej tablicy zostaje klucz z tablicy "na lewo" czyli z tej w której pierwszy raz dany klucz wystąpił. Kolejne powtórzenia klucza nie są po prostu brane pod uwagę.
Metoda druga (array_merge()): odwrotnie do metody pierwszej. Kolejne wystąpienia tego samego klucza nadpisują ciągle wynik w taki sposób, że w ostatecznej tablicy znajduje się ta wartość klucza, która wystąpiła w ostatniej tablicy "na prawo" z tym kluczem.
Klucze liczbowe
Metoda pierwsza (dodawanie): klucze liczbowe nie są nadpisywane wraz z dodawaniem nowej tablicy. Elementy w tablicy z lewej strony zostają na zawsze i nie są nadpisywane nawet jeżeli dany klucz pojawi się ponownie w którejś tablicy z prawej strony.
Metoda druga (array_merge()): to nie jest już sumowanie tablic a raczej łączenie, albo jeszcze lepiej, dołączanie. Jeżeli klucze liczbowe się powtórzą to klucze w tablicy z lewej strony zostaną zachowane a klucze w tablicy z prawej strony zostaną podniesione tak aby znaleźć się na końcu tablicy lewej.
Oto przykład, który wszystko wyjaśni:
-
0 => 'banan',
-
1 => 'kiwi',
-
'warzywo' => 'burak',
-
'inne_warzywo' => 'cebula'
-
);
-
-
0 => 'jabłko',
-
'warzywo' => 'seler',
-
'zwierze' => 'kot'
-
);
-
-
Wyniki:
-
Array
-
(
-
[0] => banan
-
[1] => kiwi
-
[warzywo] => burak
-
[inne_warzywo] => cebula
-
[zwierze] => kot
-
)
-
Array
-
(
-
[0] => banan
-
[1] => kiwi
-
[warzywo] => seler
-
[inne_warzywo] => cebula
-
[2] => jabłko
-
[zwierze] => kot
-
)
Blog przede wszystkim o Internecie i mojej pasji jaką jest tworzenie stron www. Ale nie ograniczam się do jednej tematyki, piszę o wszystkim o czym mam ochotę :-)