1

PHP配列にアイテムを追加しようとしています。配列に追加しようとしているアイテムは、すでに配列にあるアイテムと同じインデックスを持っている可能性があります。配列内で同じインデックスを共有するアイテムを上書きせずに、アイテムを配列に追加するにはどうすればよいですか?同様のインデックスを2D配列に変換したいと思います。

//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 に答える