Heim > Artikel > Backend-Entwicklung > So löschen Sie ein mehrdimensionales Array in PHP
So löschen Sie ein mehrdimensionales Array in PHP: Erstellen Sie zunächst eine PHP-Beispieldatei, löschen Sie dann die angegebenen Schlüssel-Wert-Paare im komplexen mehrdimensionalen Array und überprüfen Sie schließlich die laufenden Ergebnisse.
Empfohlen: „PHP-Video-Tutorial“
php löscht Werte in mehrdimensionalen Arrays
Im Handbuch gefunden, wurde es in eine Funktion umgewandelt, die bestimmte Schlüsselwerte löschen kann in komplexen mehrdimensionalen Arrays richtig!
<?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 class="brush:php;toolbar:false">"; print_r(unsetMultiKeys($unset, $arr)); print_r($arr); echo ""; 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(); }
Operationsergebnisse:
Ändern Sie die Schlüssel-Wert-Paare im mehrdimensionalen Array
Das obige ist der detaillierte Inhalt vonSo löschen Sie ein mehrdimensionales Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!