我想为每个键存储多个值,有点像多维数组。我写了一个函数,第一次检查密钥是否已经存在,如果确实存在,它只会将值插入到特定数组的末尾。这是我的代码:
$arr = array();
add_to_array($arr,"fruit","apple");
add_to_array($arr,"fruit","banana");
function add_to_array($array, $key, $value) {
if(array_key_exists($key, $array)) {
echo $key;
if(is_array($array[$key])) {
$array[$key][] = $value;
}
else {
$array[$key] = array($array[$key], $value);
}
echo $key;
}
else {
$array[$key] = array($value);
echo $key; // I am calling this function with the same key however, this statement gets printed out twice
echo "\n";
}
}
然而,当我运行这个程序时,即使我用相同的$ key参数调用它两次,它似乎永远不会存在。
答案 0 :(得分:1)
这是你想要做的吗?
$arr = array('fruit' => array());
$arr['fruit'][] = 'banana';
$arr['fruit'][] = 'apple';
print_r($arr);
...因为在这种情况下,你会因为精心设计的功能而过度复杂化;)
或者我可能会误解(我实际上并非 > > >)但是你的问题可能就像这样简单:你想要传递第一个参数{{ 3}}(所以你对它做出的任何改变都会持续存在) - 只需在变量名前放一个&
:
function add_to_array(&$array, $key, $value) {
// [...]
}