看板 PHP 關於我們 聯絡資訊
array A [0] => [ 'id' => '001', 'msg' => 'aaaaa' ] [1] => [ 'id' => '002', 'msg' => 'bbbb' ] [2] => [ 'id' => '001', 'msg' => 'cccc' ] [3] => [ 'id' => '002', 'msg' => 'dddd' ] array B [0] => [ 'id' => '001', 'name' => 'Mary', ] [1] => [ 'id' => '002', 'name' => 'John', ] [2] => [ 'id' => '003', 'name' => 'Jay', ] [3] => [ 'id' => '004', 'name' => 'Allen', ] 我想得到的結果是 一個陣列 就是第一個陣列裡也有依照第二個陣列裡的ID 把name對應上去 array result [0] => [ 'id' => '001', 'name' => 'Mary', 'msg' => 'aaaaa' ] [1] => [ 'id' => '002', 'name' => 'John', 'msg' => 'bbbb' ] [2] => [ 'id' => '001', 'name' => 'Mary', 'msg' => 'cccc' ] [3] => [ 'id' => '002', 'name' => 'John', 'msg' => 'dddd' ] 請問有函數有這樣join的功能嗎 或是程式要怎麼寫比較簡潔 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.46.55
mervynW:array_merge 03/16 12:43
kerash:樓上我剛剛才用 merge 測試完答案是不能 03/16 12:45
kerash:他會變成一個長度 6 的陣列 03/16 12:45
kerash:(說錯,我只測 3筆+3筆=6,原PO是4+4=8) 03/16 12:46
sk1765:array_merge根本不可能依照相同key去merge 欄位 03/16 12:47
kerash:這個的問題應該不是在key,而是他要要求同"ID" combine 03/16 12:49
kerash:應該只能自己寫 function 下去跑 03/16 12:49
sk1765:寫程式恐怕有問題 要寫兩層foreach 若是一萬筆資料該如何 03/16 13:03
sk1765:如果能把id值 替換到數字索引 0,1,2,3 => 001,002,003,004 03/16 13:07
sk1765:可能簡單一點 不知是否還有其他好辦法 03/16 13:08
kerash:如果概念是,把id的value先提出來當key,再把所有的array 03/16 13:15
kerash:merge起來會不會比較好一些? 03/16 13:15
kerash:不過得先確認一下資料產出的結果是固定還是怎樣,假設id兩組 03/16 13:17
kerash:會有不同的,這個方法應該就得修正 03/16 13:18
MOONRAKER:先組id=>msg和id=>name兩組陣列出來,然後再合併 03/16 14:02
MOONRAKER:There is no royal way. 03/16 14:03
mervynW:沒看後面的說明 XDDDD 03/16 14:30
MOONRAKER:看過啦 也沒啥別的方法吧 簡不簡潔只有靠寫程式習慣 03/16 15:18
MOONRAKER:這種O(n)的事情很難再精簡了 03/16 15:19