《PHP實(shí)戰(zhàn):PHP遞歸刪除多維數(shù)組中的某個(gè)值》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):PHP遞歸刪除多維數(shù)組中的某個(gè)值,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
今天在做業(yè)務(wù)邏輯的過(guò)程中,需要在一個(gè)不確定的多維數(shù)組中刪除某個(gè)特定的key,查了挺長(zhǎng)時(shí)間加上自己的修改,終于滿(mǎn)足了業(yè)務(wù)邏輯,該方法在修改后應(yīng)該可以適用于很多地方,所以記錄下來(lái)以備后用,我這里是一個(gè)多維數(shù)組,還是json_encode后的,主要目的是刪除所有old_tags_id數(shù)組中有tag_id=264的數(shù)據(jù),順便要?jiǎng)h除相應(yīng)的tag_name,還有 addtag要減1,,代碼如下:PHP實(shí)戰(zhàn)
先放遞歸函數(shù),當(dāng)然這里是核心,很多人看了這個(gè)應(yīng)該就已經(jīng)知道如何使用了.PHP實(shí)戰(zhàn)
public function dealMenuTagDelete(&$menuData, $tag_id) { if (!is_array($menuData)) { return false; } foreach ($menuData as $key => $val) { if ($key === 'old_tags_id') { foreach ($val as $tagKey => $tagVaule) { if ($tagVaule == $tag_id) { unset($menuData['old_tags_id'][$tagKey]); unset($menuData['old_tags'][$tagKey]); $menuData['addtag']--; } } } if (is_array($val)) { self::dealMenuTagDelete($menuData[$key], $tag_id); } } return $menuData; }
維數(shù)組長(zhǎng)這樣,還是jeson_encode后的格式:PHP實(shí)戰(zhàn)
[ { "typ": "res_ejcd", "tit": "message1", "data": "1@2@3", "subdata": { "zizicd1": { "typ": "res_wb", "data": "qqqq", "addtag": 1, "old_tags": [ "\"campaign綜合分析\"", "test add a tag" ], "old_tags_id": [ "264", "17" ], "new_tags_id": [], "tit": "1" }, "zizicd2": { "typ": "res_wb", "data": "wwww", "addtag": 1, "old_tags": [ "test add a tag" ], "old_tags_id": [ "17" ], "new_tags_id": [], "tit": "2" }, "zizicd3": { "typ": "res_wb", "data": "ddd", "addtag": 1, "old_tags": [], "old_tags_id": [], "new_tags_id": [ "new_tag1" ], "tit": "3" } }, "addtag": 0, "old_tags": [], "old_tags_id": [], "new_tags_id": [] }, { "typ": "res_tw", "tit": "Post", "data": "2121", "subdata": null, "addtag": 1, "old_tags": [ "“519引號(hào)閱讀user message圖文”" ], "old_tags_id": [ "183" ], "new_tags_id": [] }, { "typ": "res_wb", "tit": "Today1", "data": "12312321", "subdata": null, "addtag": 1, "old_tags": [], "old_tags_id": [], "dynamicdata": "{\"default\":{\"message_type\":\"1\",\"val\":\"dynamic\"},\"segementation\":[{\"segId\":\"451\",\"message_type\":\"1\",\"val\":\"你屬于conversation 80這一組\"},{\"segId\":\"450\",\"message_type\":\"1\",\"val\":\"poll-1212\\n有三個(gè)人,rainbow H T_T\"}]}", "configId": "2392", "new_tags_id": [ "new_tag2" ] } ]
然后賦值,調(diào)用PHP實(shí)戰(zhàn)
$tag_id = 264; $menuData = json_decode($data,true);//這里第二個(gè)參數(shù)用true就會(huì)轉(zhuǎn)化為數(shù)組了 self::dealMenuTagDelete($menuData,$tag_id); print_r($menuData);
以上所述是小編給大家介紹的PHP遞歸刪除多維數(shù)組中的某個(gè)值,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的.在此也非常感謝大家對(duì)維易PHP網(wǎng)站的支持!PHP實(shí)戰(zhàn)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/955.html