《PHP實戰(zhàn):PHP遞歸刪除多維數(shù)組中的某個值》要點:
本文介紹了PHP實戰(zhàn):PHP遞歸刪除多維數(shù)組中的某個值,希望對您有用。如果有疑問,可以聯(lián)系我們。
今天在做業(yè)務邏輯的過程中,需要在一個不確定的多維數(shù)組中刪除某個特定的key,查了挺長時間加上自己的修改,終于滿足了業(yè)務邏輯,該方法在修改后應該可以適用于很多地方,所以記錄下來以備后用,我這里是一個多維數(shù)組,還是json_encode后的,主要目的是刪除所有old_tags_id數(shù)組中有tag_id=264的數(shù)據(jù),順便要刪除相應的tag_name,還有 addtag要減1,,代碼如下:PHP實戰(zhàn)
先放遞歸函數(shù),當然這里是核心,很多人看了這個應該就已經知道如何使用了.PHP實戰(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ù)組長這樣,還是jeson_encode后的格式:PHP實戰(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引號閱讀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有三個人,rainbow H T_T\"}]}", "configId": "2392", "new_tags_id": [ "new_tag2" ] } ]
然后賦值,調用PHP實戰(zhàn)
$tag_id = 264; $menuData = json_decode($data,true);//這里第二個參數(shù)用true就會轉化為數(shù)組了 self::dealMenuTagDelete($menuData,$tag_id); print_r($menuData);
以上所述是小編給大家介紹的PHP遞歸刪除多維數(shù)組中的某個值,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網站的支持!PHP實戰(zhàn)