Łączenie tablic

0

Witam,
Mam, jak podejrzewam, tendencyjne pytanie.
Istnieją sobie dwie tablice, przykładowo $array1(1, 2, 3, 4) oraz $array2(3,4,5,6).

Czy istnieje jakaś pojedyncza funkcja, która da mi wynik $array(1,2,3,4,5,6) - czyli połączenie pierwszej tablicy oraz elementów, które występują w drugiej tablicy, a których w pierwszej nie było?

Problem obszedłem stosując array_merge($array1, array_diff($array2,$array1)), jednak zastanawia mnie czy jest to najbardziej optymalne rozwiązanie oraz czy nie istnieje pojedyncza funkcja, która sama w sobie wykonuje obydwa te kroki i da mi poszukiwany przeze mnie wynik?

Z góry dziękuję za pomoc,
Vud.

0

Nie, nie istnieje żadna taka wbudowana funkcja (w rozumieniu pojedynczego wywołania).

jednak zastanawia mnie czy jest to najbardziej optymalne rozwiązanie

Zastanawianie się tutaj nie pomoże - zrób benchmark, a będziesz wiedział.

0

Dzięki serdeczne, tylko czy jest sens robić benchmark, skoro poszukiwanego wyniku potrzebuję, a nie mam innej metody do porównania, by go uzyskać? Jedynie dla samej wiedzy, dla siebie.

0

Jak nie ma innej metody? ;-)

Są jeszcze co najmniej:
1.array_unique(array_merge($a, $b))
2.Trick z array_count_values :)
3.Zwyczajny for/while/etc.

0

Dzięki za sugestie ;)
Pierwsza Twoja propozycja mi przyszła do głowy, ale już po fakcie, a jako niezarejestrowany użytkownik raczej nie mogę edytować swoich odpowiedzi. Teraz już będzie co porównywać ;) Choć przy wielkości tablicy wynikowej nieprzekraczającej 1000 elementów (zakładam 600-700) pewnie będą to w ogóle niewielkie różnice.

0

Poniżej 100k elementów imho nie ma sensu porównywać (na standardowych procesorach), wyjdzie w praniu ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1