为每个唯一键存储多个值



我想为每个键存储多个值,有点像多维数组。我编写了一个函数,首先检查键是否已经存在,如果存在,它将简单地将值插入到特定数组的末尾。下面是我的代码:

$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参数调用它两次,键似乎也不存在。

这就是你想要做的吗?

$arr = array('fruit' => array());
$arr['fruit'][] = 'banana';
$arr['fruit'][] = 'apple';
print_r($arr);

…因为在这种情况下,你的复杂函数有点过于复杂了;)

或者我可能会误解(老实说,我并没有真正得到你的函数),但你的问题可能像这样简单:你想传递第一个参数作为引用(所以你对它所做的任何更改将持续存在)-只需在变量名前面放一个&:

function add_to_array(&$array, $key, $value) {
    // [...]
}

相关内容

  • 没有找到相关文章

最新更新