2012-11-29 2 views
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" 
); 

원하는 출력을 얻으려면 어떻게해야합니까?

+0

원하는 출력은 다중 차원 배열처럼

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; } } 

는 사용, 그래서 내가 이해가 확실하지 않다. – bozdoz

+0

항목이 배열에 추가되고 인덱스가 이미있는 경우 인덱스를 덮어 쓰는 대신 값 배열을 포함하고 싶습니다. – Sosumi

답변

1

다음과 같은 기능을 사용해보십시오. 함수가 테스트되지 않았으므로 일부 구문 오류가있을 수 있습니다.

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

//Add items to array 
addArray($array, 'item1', 'data2d'); 
+0

테스트를하지 않아도됩니다. – bozdoz

관련 문제