2016-02-26 118 views
1

我想合併兩個數組。用不同的鍵合併PHP數組

第一個看起來是這樣的:

array(28) { 
    [0]=> 
    array(17) { 
    ["category_id"]=> 
    string(2) "11" 
    ["image"]=> 
    string(27) "718426050751.jpg" 
    ["parent_id"]=> 
    string(1) "1" 
    ["top"]=> 
    string(1) "0" 
    ["column"]=> 
    string(1) "1" 
    ["sort_order"]=> 
    string(2) "21" 
    ["status"]=> 
    string(1) "1" 
    ["date_added"]=> 
    string(19) "2015-07-30 14:06:42" 
    ["date_modified"]=> 
    string(19) "2016-01-05 12:21:32" 
    ["language_id"]=> 
    string(1) "1" 
    ["name"]=> 
    string(7) "Faucets" 
    ["description"]=> 
    string(0) "" 
    ["meta_description"]=> 
    string(0) "" 
    ["meta_keyword"]=> 
    string(0) "" 
    ["store_id"]=> 
    string(1) "1" 
    ["product_count"]=> 
    string(1) "0" 
    ["page_count"]=> 
    string(1) "0" 
    } 

,第二個看起來像這樣:

array(17) { 
    ["category_id"]=> 
    string(2) "13" 
    ["image"]=> 
    string(28) "4005176268779.jpg" 
    ["parent_id"]=> 
    string(2) "11" 
    ["top"]=> 
    string(1) "0" 
    ["column"]=> 
    string(1) "1" 
    ["sort_order"]=> 
    string(1) "2" 
    ["status"]=> 
    string(1) "1" 
    ["date_added"]=> 
    string(19) "2015-07-30 14:06:43" 
    ["date_modified"]=> 
    string(19) "2016-01-07 14:10:53" 
    ["language_id"]=> 
    string(1) "1" 
    ["name"]=> 
    string(12) "Sink Faucets" 
    ["description"]=> 
    string(0) "" 
    ["meta_description"]=> 
    string(0) "" 
    ["meta_keyword"]=> 
    string(0) "" 
    ["store_id"]=> 
    string(1) "1" 
    ["product_count"]=> 
    string(1) "0" 
    ["page_count"]=> 
    string(1) "0" 
} 

正如你所看到的第二個沒有像第一個關鍵這是[0]。

當我使用:

$children = array_merge((array)$children, (array)$additional); 

我得到一個合併後的數組,但額外的陣列沒有得到一個關鍵的這對我來說將優選[1],或者從最後一個數組鍵+1。

可以做到這一點嗎?

感謝

+0

假設兒童$的第一個陣列,爲什麼不使用$兒[0]數組中合併嗎?像'$ children [0] = array_merge($ children [0],$ additional);' – kainaw

+0

你需要array_merge嗎? '$ children [] = $ additional'應該可以工作 – Gavin

+0

我們是否需要所有這些數據來理解您的問題?你能讓它更簡單嗎?否則你會失去很多能夠幫助你的人:( –

回答

0

array_merge()是沒有必要的,你只需要在第二陣列推到第一。 $a[]=$b;$b的數據添加到$a,並分配一個自動遞增的密鑰而不需要函數調用。

代碼:

$a=[ 
    0=>[ 
     "category_id"=>"11", 
     "image"=>"718426050751.jpg", 
     "parent_id"=>"1", 
     "top"=>"0", 
     "column"=>"1", 
     "sort_order"=>"21", 
     "status"=>"1", 
     "date_added"=>"2015-07-30 14:06:42", 
     "date_modified"=>"2016-01-05 12:21:32", 
     "language_id"=>"1", 
     "name"=>"Faucets", 
     "description"=>"", 
     "meta_description"=>"", 
     "meta_keyword"=>"", 
     "store_id"=>"1", 
     "product_count"=>"0", 
     "page_count"=>"0" 
    ] 
]; 
$b=[ 
    "category_id"=>"13", 
    "image"=>"4005176268779.jpg", 
    "parent_id"=>"11", 
    "top"=>"0", 
    "column"=>"1", 
    "sort_order"=>"2", 
    "status"=>"1", 
    "date_added"=>"2015-07-30 14:06:43", 
    "date_modified"=>"2016-01-07 14:10:53", 
    "language_id"=>"1", 
    "name"=>"Sink Faucets", 
    "description"=>"", 
    "meta_description"=>"", 
    "meta_keyword"=>"", 
    "store_id"=>"1", 
    "product_count"=>"0", 
    "page_count"=>"0" 
]; 
$a[]=$b; // push, not merge 
var_export($a); 

輸出:

array (
    0 => 
    array (
    'category_id' => '11', 
    'image' => '718426050751.jpg', 
    'parent_id' => '1', 
    'top' => '0', 
    'column' => '1', 
    'sort_order' => '21', 
    'status' => '1', 
    'date_added' => '2015-07-30 14:06:42', 
    'date_modified' => '2016-01-05 12:21:32', 
    'language_id' => '1', 
    'name' => 'Faucets', 
    'description' => '', 
    'meta_description' => '', 
    'meta_keyword' => '', 
    'store_id' => '1', 
    'product_count' => '0', 
    'page_count' => '0', 
), 
    1 => 
    array (
    'category_id' => '13', 
    'image' => '4005176268779.jpg', 
    'parent_id' => '11', 
    'top' => '0', 
    'column' => '1', 
    'sort_order' => '2', 
    'status' => '1', 
    'date_added' => '2015-07-30 14:06:43', 
    'date_modified' => '2016-01-07 14:10:53', 
    'language_id' => '1', 
    'name' => 'Sink Faucets', 
    'description' => '', 
    'meta_description' => '', 
    'meta_keyword' => '', 
    'store_id' => '1', 
    'product_count' => '0', 
    'page_count' => '0', 
), 
) 
+0

@ smack-a-bro你的問題似乎被放棄了,這代表了未來SO研究人員的死衚衕。一個答案讓你接受,我已經發布了一些東西,以便你的問題可以關閉。 – mickmackusa