我在PHP中寻找一种简洁的方法:
给定一个数组,如果我key=>value向它添加一对,例程应检查该键是否已存在.
如果它不存在,请使用该key=>value对添加到数组.
如果是,则该值应附加到数组的值.因此,例如,如果初始数组是这样的话
arr['a']='2e'
Run Code Online (Sandbox Code Playgroud)
当我'a'=>'45'向数组添加一对时,例程将返回给我
arr['a']=array('2e', '45')
Run Code Online (Sandbox Code Playgroud)
当我添加另一'a=>gt'对时,例程将返回给我
arr['a']=array('2e', '45','gt')
Run Code Online (Sandbox Code Playgroud)
这样做有简洁的方法吗?当然我可以自己写,但我相信我的解决方案非常难看.
Flo*_*anH 20
您可以通过使用第一个元素("2e")的数组来解决问题:
$arr = array();
$arr['a'][] = '2e';
$arr['a'][] = '45';
$arr['a'][] = 'gt';
print_r($arr);
Run Code Online (Sandbox Code Playgroud)
Vot*_*ple 12
有三种情况:
所以,在代码中:
function appendThings(/* map[string,mixed] */ $array, /* string */ $key, /* string */ $value) {
if (!isset($array[$key]))
$array[$key] = $value;
else if (is_array($array[$key]))
$array[$key][] = $value;
else
$array[$key] = array($array[$key], $value);
return $array;
}
Run Code Online (Sandbox Code Playgroud)
这只是最后一个棘手的案例:如果它还不是一个数组,你需要使用当前值和新值组合一个.