How can I remove a key and its value from an associative array?
给定关联数组:
1 |
对于给定的键,如何删除某个键-值对?
您可以使用
1 |
例子:
1 2 3 4 5 6 7 8 |
输出:
使用
1 |
使用此函数可以在不修改原始数组的情况下删除键的特定数组:
1 2 3 |
第一个参数传递所有数组,第二个参数设置要移除的键数组。
例如:
1 2 3 4 5 6 7 | $array = [ 'color' => 'red', 'age' => '130', 'fixed' => true ]; $output = array_except($array, ['color', 'fixed']); // $output now contains ['age' => '130'] |
使用
1 |
根据您的阵列,您可能需要两个或多个循环:
1 2 3 4 5 6 7 | $arr[$key1][$key2][$key3]=$value1; // ....etc foreach ($arr as $key1 => $values) { foreach ($key1 as $key2 => $value) { unset($arr[$key1][$key2]); } } |
考虑这个数组:
1 |
要使用数组
key 删除元素:用
value 移除元件:1
2
3
4// remove an element by value:
$arr = array_diff($arr, ["value1"]);
var_dump($arr);
// output: array(2) { ["key3"]=> string(6)"value3" ["key4"]=> string(6)"value4" }
了解关于array diff的更多信息:http://php.net/manual/en/function.array-diff.php
使用
index 移除元件:1
2
3
阅读关于数组拼接的更多信息:http://php.net/manual/en/function.array-splice.php
下面是一种从具有偏移、长度和替换的关联项中删除项的方法-使用数组拼接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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')); |