2013-04-25 71 views
5

Nếu tôi có một mảng mà trông giống như sau:PHP, Merge phím trong mảng đa chiều

Array 
(
    [0] => Array 
    (
     [DATA] => Array 
    (
     VALUE1 = 1 
     VALUE2 = 2 
    ) 
    ) 
    [1] => Array 
    ( 
     [DATA] => Array 
    (
     VALUE3 = 3 
     VALUE4 = 4 
    ) 
    ) 
) 

Và muốn biến nó thành này:

Array 
(
    [0] => Array 
    (
     [DATA] => Array 
    (
     VALUE1 = 1 
     VALUE2 = 2 
     VALUE3 = 3 
     VALUE4 = 4 
    ) 
    ) 
) 

tôi về cơ bản muốn kết hợp tất cả các phím giống hệt nhau ở cùng mức. Tuyến đường tốt nhất để thực hiện điều này là gì? Các hàm array_merge có thể sử dụng được không?

Tôi hy vọng điều này làm cho bất kỳ loại cảm giác và cảm ơn trước cho bất kỳ trợ giúp tôi có thể nhận được.

Trả lời

12

Bạn có thể sử dụng array_merge_recursive để hợp nhất tất cả các mục trong mảng ban đầu với nhau. Và kể từ khi chức năng mà phải mất một số biến của tham số, làm cho nó trở nên cồng kềnh khi con số này là không rõ tại thời gian biên dịch, bạn có thể sử dụng call_user_func_array cho thêm tiện theo dõi:

$result = call_user_func_array('array_merge_recursive', $array); 

Kết quả sẽ có "cấp cao nhất" của đầu vào của bạn cắt tỉa (hợp lý, vì bạn đang hợp nhất nhiều mục thành một) nhưng sẽ giữ tất cả cấu trúc còn lại.

See it in action.

+0

Tôi đã tự hỏi nếu có một cách để làm điều này mà không có một văn bản ra một vòng lặp - rất gọn gàng! – lewsid

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