我想用一個函數做到這一點。如何添加或刪除(如果已經存在)key =>值對的數組?
我有鑰匙=>值對:
14=>1
我有一個包含許多這樣的對的數組:
array(15=>2, 16=>7, 4=>9)
我想要的功能,這將添加密鑰=>值對來該數組如果它不在那裏,但它將從數組中移除,如果它已經存在的話。
我想有一個單一的功能。
我想用一個函數做到這一點。如何添加或刪除(如果已經存在)key =>值對的數組?
我有鑰匙=>值對:
14=>1
我有一個包含許多這樣的對的數組:
array(15=>2, 16=>7, 4=>9)
我想要的功能,這將添加密鑰=>值對來該數組如果它不在那裏,但它將從數組中移除,如果它已經存在的話。
我想有一個單一的功能。
function updateArray($array, $findKey, $findValue) {
foreach($array as $key => $value) {
if ($key == $findKey AND $value == $findValue) {
unset($array[$key]);
return $array;
}
}
$array[$findKey] = $findValue;
return $array;
}
聽起來我的作業。
function yourSpecialFunctionRenameMe(&$array, $key, $value){
if(array_key_exists($array, $key) && $array[$key] == $value){
$array[$key] = $value;
}else{
unset($array[$key]);
}
}
這將修改函數中的`$ array`,然後在退出時釋放它 - 沒有辦法讓他返回`$ array`。 – alex 2010-11-24 12:36:20
function arr_add_rem($arr, $k, $v){
if(!array_key_exists($k)){
$arr[$k] = $v;
}
else{
unset($arr[$k]);
}
return $arr;
}
像這樣的事情?
function add_or_remove(&$array, $key, $value) {
// remove key/value pairs if they're both identical
if (array_key_exists($key, $array)
&& $array[$key] == $value) {
unset($array[$key]);
// add new key/value pair
// OR modify the value for existing key
} else {
$array[$key] = $value;
}
}
function add_or_remove_key_value_pair(&$array, $key, $value){
if ($key == array_search($value, $array))
unset($array[$key]);
else
$array[$key] = $value;
}
測試:
$array = array(15=>2, 16=>7, 4=>9);
add_or_remove_key_value_pair($array, 15, 2);// 15=>2 will be removed
add_or_remove_key_value_pair($array, 14, 1);// 14=>1 will be added
var_dump($array);
輸出:
array(3) {
[16]=> int(7)
[4]=> int(9)
[14]=> int(1)
}
什麼必須是如果該鍵存在,但該值是不同的結果呢? – Toto 2010-11-24 13:00:56
@ M42添加key =>值對。僅當鍵和值與我們試圖插入的鍵相同時才刪除。 – 2010-11-24 13:02:40