2013-03-20 39 views
7

Tôi đang tạo biểu mẫu gửi 3 trang và tôi muốn tất cả các kết quả $ _POST được lưu trữ trong một biến phiên duy nhất.Thêm mảng vào mảng hiện có mà không cần gọi một khóa mới

Vì vậy, trang 1 bắt đầu bằng cách thiết lập các mảng và thêm lô đầu tiên của bài dữ liệu:

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

này hoạt động tuyệt vời và trả về một mảng như:

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

Vì vậy, khi tôi nhận được rời khỏi trang 2, tôi chỉ muốn thêm chúng vào mảng hiện có mà không cần gọi một mảng + khóa mới

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

Để có được một cái gì đó như thế này:

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

Nhưng thay vào đó tôi nhận được:

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

Thậm chí khó chịu hơn là tôi chắc chắn rằng tôi đã này hoạt động bình thường trước khi tôi tinh chỉnh mã. Tôi đang làm gì sai?

+1

bạn đang tìm kiếm array_merge – ITroubs

Trả lời

6

Bạn cũng có thể sử dụng + operator:

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

Cảm ơn vì điều đó. Bất kỳ ý tưởng nếu đó có ít chi phí hơn bằng cách sử dụng chức năng array_merge? – James

+0

@ user2189903 Tôi chắc chắn sẽ đoán như vậy, nhưng bạn sẽ phải chuẩn bị để chắc chắn. – jeroen

3

array_merge() là chức năng bạn đang theo dõi.

+1

Thật là một Tôi muốn! Tôi đã array_merge nhưng thay đổi nó để array_push. Cảm ơn các bạn vì đã hồi âm sớm. – James

Các vấn đề liên quan