Mam dwie asocjacyjne tablice, które mają wiele treści same, więc chcę połączyć te dwie tablice w taki sposób, że jeśli mam a
w tablicy 1 i a
w tablicy 2 niż w tablicy 3, powinienem mieć wpisy zarówno dla a's
i nie 1.Jak połączyć 2 tablice asocjacyjne w PHP, abyśmy nie zastępowali żadnych duplikatów we wszystkich przypadkach?
próbowałem, używając array_merge ale byłoby zastąpić wpisy w tablicy 1, czy istnieją duplikaty w 2 tablicy próbowałem również używając +
ale daje mi błąd krytyczny mówiąc Fatal error: Unsupported operand types in /home/code.php
następnie próbowałem robić
(array)$ar3 = (array)$ar1 +(array)$ar2
i wygląda na to, że się sumuje. Chciałbym wiedzieć, czy to jest poprawny sposób, aby to zrobić, a także dlaczego początkowo dostałem błąd krytyczny i działało tak, jak już zdefiniowałem $ ar3, $ ar2, $ ar1 jako typy tablic.
$orders = new Order();
$prospectOffers = $orders->getOrder($orderConfNumber);
$prospectOffersResult = json_decode($prospectOffers,true);
$shoppingBasket = $cart->getCartItems();
var_dump($prospectOffersResult); // Both are arrays
var_dump($shoppingBasket); //Both are arrays
(array)$result = (array)$prospectOffersResult+(array)$shoppingBasket;
Dzięki.
Zobacz ten powiązane pytanie http://stackoverflow.com/questions/2140090/operator-for-array-in-php/2140094#2140094 – Gordon
You są całkowicie uprawnieni do użycia '+ ', to połączy dwie macierze: *" Operator + dołącza elementy pozostałych kluczy z tablic z prawą ręką do leworęcznych, podczas gdy zduplikowane klucze są ** NIE ** zastępowane. "* http: //www.php.net/manual/en/language.operators.array.php Dlaczego musisz rzucić je jako tablicę, zanim nie będę wiedział, że masz dziwny kod;) –
możesz dodać wynik działania 'var_dump 'proszę. skróć je, gdy są bardzo długie. – Gordon