為什麼這篇php foreach二維陣列鄉民發文收入到精華區:因為在php foreach二維陣列這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者NdhuOD (OD)看板PHP標題[請益] 請教php多層陣列比對並更新時間Mon Apr ...
各位大大好~
小弟不才,最近接到一個任務,就是寫出二維以上之兩陣列比對的class或function,
而兩陣列的各有指定key=>value值,假如一個陣列是現有的陣列資料,
另一陣列來自json_decode產生出的陣列。
---------------------------------------------------------------------------
程式需求敘述:
需求是要以"現有陣列資料"為主,
第一、若唯一識別值存在於"現有陣列資料"中,
且該筆相對應的陣列資料於"json_decode陣列"中有更新值,
則進行"現有陣列資料"更新"
(※僅限於"現有陣列資料"原有的key相對應的value值做更新,
而"json_decode陣列"多餘的key=>value值則忽略);
第二、若唯一識別值不存在於"現有陣列資料"中,
則新增該筆"唯一識別值陣列"到"現有陣列資料"中。
目標:在最終回傳一個需要更新的完整陣列
如下所示:
---------------------------現有的陣列資料--------------------------
Array
(
[330] => Array
(
[id] => 330
[state] => 0
[date] => 2014-01-08
[time] => Array
(
[time1] => 1400
[time2] => 1500
[time3] => 1600
)
)
[331] => Array
(
[id] => 331
[state] => 1
[date] => 2014-01-08
[time] => Array
(
[time1] => 0800
[time2] => 0830
[time3] => 0840
)
)
)
-------------------------------------------------------------------
------------------------來自json_decode陣列------------------------
Array
(
[330] => Array
(
[id] => 330
[state] => 2
[date] => 2014-01-08
[time] => Array
(
[time1] => 1400
[time2] => 1430
[time3] => 1500
)
[creater] => 8951
)
[333] => Array
(
[id] => 333
[state] => 1
[date] => 2014-01-08
[time] => Array
(
[time1] => 1600
[time2] => 1630
[time3] => 1700
)
)
)
-------------------------------------------------------------------
--------------------------最終目標產生陣列-------------------------
Array
(
[330] => Array
(
[id] => 330
[state] => 2
[date] => 2014-01-08
[time] => Array
(
[time1] => 1400
[time2] => 1430
[time3] => 1500
)
)
[333] => Array
(
[id] => 333
[state] => 1
[date] => 2014-01-08
[time] => Array
(
[time1] => 1600
[time2] => 1630
[time3] => 1700
)
)
)
-------------------------------------------------------------------
紅色字體為json_decode陣列資料中有該key=>value,但現有陣列資料沒有
綠色字體為欲更新的部分。
-------------------------------------------------------------------
請問各位大大們有什麼建議的方法嗎? 小弟目前是想以遞歸方式來做,
但遇到若有更多層陣列的話,不知道該如何指定到正確的陣列位址來進行資料更新,
請各位大大不吝給予小弟賜教,謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.6.65
※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1396857871.A.47F.html
※ 編輯: NdhuOD (140.109.6.65), 04/07/2014 16:15:05