1

我正在尝试将一个项目添加到 PHP 数组中。我尝试添加到数组中的项目可能与已经在数组中的项目具有相同的索引。如何在不覆盖在数组中共享相同索引的项目的情况下将项目添加到数组中?我希望类似的索引变成二维数组。

//Original Array
$array = array (
            "item1" => "data1",
            "item2" => "data2",
            "item3" => "data3"
        );

//Add items to array
$array["item1"] = "data2d";
$array["item5"] = "data4";

//Desired output
array (
    "item1" => array("data1", "data4"),
    "item2" => "data2",
    "item3" => "data3",
    "item4" => "data4"
);

我将如何实现所需的输出?

4

1 回答 1

1

尝试如下功能。该函数尚未经过测试,因此可能存在一些语法错误。

function addArray(&$array, $key, $value) {
  if (isset($array[$key])) {
    if (!is_array($array[$key])) {
      $tmp = $array[$key];
      $array[$key] = array($tmp, $value);
    }
    else {
      array_push($array[$key], $value);
    }
  }
  else {
    $array[$key] = $value;
  }      
}

像这样使用

$array = array (
  "item1" => "data1",
  "item2" => "data2",
  "item3" => "data3"
);

//Add items to array
addArray($array, 'item1', 'data2d');
于 2012-11-29T05:24:33.327 回答