2013-03-20 10 views
7

Buduję 3-stronicowy formularz zgłoszeniowy i chciałbym, aby wszystkie wyniki $ _POST były przechowywane w pojedynczej zmiennej sesji.Dodawanie tablicy do istniejącej tablicy bez wywoływania nowego klucza

So strona 1 rozpoczyna się od utworzenia macierzy i dodanie pierwszego dużo danych postu:

$_SESSION['results'] = array(); 
$_SESSION['results'] = $_POST // first lot of post data 

Działa to doskonale i zwraca tablicę jak:

Array 
(
    [name] => bob 
    [address] => 1 foobar way 
    [age] => 100 
) 

więc kiedy otrzymuję od 2 strony, chcę po prostu dołączyć je do istniejącej tablicy bez wywoływania nowego klawisza tablica +

array_push($_SESSION['results'], $_POST); //second lot of post data 

Aby uzyskać coś takiego:

Array 
(
    [name] => bob 
    [address] => 1 foobar way 
    [age] => 100 
    [job] => rubbish php dev 
    [salary] => 1000 
) 

Ale zamiast uzyskać:

Array 
(
    [name] => bob 
    [address] => 1 foobar way 
    [age] => 100 
    [0] => Array 
    (
     [job] => rubbish php dev 
     [salary] => 1000 
    ) 
) 

Jeszcze bardziej irytujące jest to, że jestem pewien, że miałem ten działa prawidłowo, zanim manipulowane kodu. Co ja robię źle?

+1

szukasz array_merge – ITroubs

Odpowiedz

6

Można również użyć + operator:

$combined = $_SESSION['results'] + $_POST; 
+1

Dzięki za to. Każdy pomysł, jeśli ma to mniej narzutów niż użycie funkcji array_merge? – James

+0

@ user2189903 Z pewnością tak bym się domyślał, ale musiałbyś to sprawdzić. – jeroen

3

array_merge() to funkcja, której szukasz.

+1

Co się fraggle rock, jestem! Miałem array_merge, ale zmieniłem go na array_push. Dzięki za szybkie odpowiedzi. – James

Powiązane problemy