Как удалить ключ и его значение из ассоциативного массива?

Учитывая ассоциативный массив:

array("key1" => "value1", "key2" => "value2", ...) 

Как я могу удалить некоторую пару ключ-значение, учитывая ключ?

Вы можете использовать unset :

 unset($array['key-here']); 

Пример:

 $array = array("key1" => "value1", "key2" => "value2"); print_r($array); unset($array['key1']); print_r($array); unset($array['key2']); print_r($array); с $array = array("key1" => "value1", "key2" => "value2"); print_r($array); unset($array['key1']); print_r($array); unset($array['key2']); print_r($array); с $array = array("key1" => "value1", "key2" => "value2"); print_r($array); unset($array['key1']); print_r($array); unset($array['key2']); print_r($array); 

Вывод:

 Array ( [key1] => value1 [key2] => value2 ) Array ( [key2] => value2 ) Array ( ) 

Используйте unset() :

 unset($array['key1']); 

Используйте эту функцию для удаления определенных массивов ключей без изменения исходного массива:

 function array_except($array, $keys) { return array_diff_key($array, array_flip((array) $keys)); } 

Первый параметр передает весь массив, второй набор параметров массива ключей для удаления.

Например:

 $array = [ 'color' => 'red', 'age' => '130', 'fixed' => true ]; $output = array_except($array, ['color', 'fixed']); // $output now contains ['age' => '130'] 

Использование unset :

 unset($array['key1']) 

В зависимости от вашего массива вам может понадобиться две или более петли:

 $arr[$key1][$key2][$key3]=$value1; // ....etc foreach ($arr as $key1 => $values) { foreach ($key1 as $key2 => $value) { unset($arr[$key1][$key2]); } } с $arr[$key1][$key2][$key3]=$value1; // ....etc foreach ($arr as $key1 => $values) { foreach ($key1 as $key2 => $value) { unset($arr[$key1][$key2]); } } 

Ниже приведен метод, который удаляет элементы из ассоциативности со смещением, длиной и заменой – с использованием array_splice

  function array_splice_assoc(&$input, $offset, $length = 1, $replacement = []) { $replacement = (array) $replacement; $key_indices = array_flip(array_keys($input)); if (isset($input[$offset]) && is_string($offset)) { $offset = $key_indices[$offset]; } if (isset($input[$length]) && is_string($length)) { $length = $key_indices[$length] - $offset; } $input = array_slice($input, 0, $offset, TRUE) + $replacement + array_slice($input, $offset + $length, NULL, TRUE); return $input; } // Example $fruit = array( 'orange' => 'orange', 'lemon' => 'yellow', 'lime' => 'green', 'grape' => 'purple', 'cherry' => 'red', ); // Replace lemon and lime with apple array_splice_assoc($fruit, 'lemon', 'grape', array('apple' => 'red')); // Replace cherry with strawberry array_splice_assoc($fruit, 'cherry', 1, array('strawberry' => 'red'));