您好,登錄后才能下訂單哦!
這篇文章主要介紹了php刪除多維數組的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
php刪除多維數組的方法:首先創建一個PHP示例文件;然后通過unsetMultiKeys方法刪除復雜的多維數組里面的指定鍵值對;最后查看運行結果即可。
php刪除多維數組里面的值
在手冊里面發現,改造后變成了一個函數,可以刪除復雜的多維數組里面的制定鍵值對!
<?php $arr = [ 'test' => 'value', 'level_one' => [ 'level_two' => [ 'level_three' => [ 'replace_this_array' => [ 'special_key' => 'replacement_value', 'key_one' => 'testing', 'key_two' => 'value', 'four' => 'another value', ], ], 'ordinary_key' => 'value', ], ], ]; $unset = array('special_key', 'ordinary_key', 'four'); echo "<pre>"; print_r(unsetMultiKeys($unset, $arr)); print_r($arr); echo "</pre>"; exit; function unsetMultiKeys($unset, $array) { $arrayIterator = new \RecursiveArrayIterator($array); $recursiveIterator = new \RecursiveIteratorIterator($arrayIterator, \RecursiveIteratorIterator::SELF_FIRST); foreach ($recursiveIterator as $key => $value) { foreach ($unset as $v) { if (is_array($value) && array_key_exists($v, $value)) { // 刪除不要的值 unset($value[$v]); // Get the current depth and traverse back up the tree, saving the modifications $currentDepth = $recursiveIterator->getDepth(); for ($subDepth = $currentDepth; $subDepth >= 0; $subDepth--) { // Get the current level iterator $subIterator = $recursiveIterator->getSubIterator($subDepth); // If we are on the level we want to change, use the replacements ($value) other wise set the key to the parent iterators value $subIterator->offsetSet($subIterator->key(), ($subDepth === $currentDepth ? $value : $recursiveIterator->getSubIterator(($subDepth + 1))->getArrayCopy())); } } } } return $recursiveIterator->getArrayCopy(); }
運行結果:
改變多維數組里面的鍵值對
感謝你能夠認真閱讀完這篇文章,希望小編分享php刪除多維數組的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。