2012-07-03 2 views
0

저는 SO를 통해 검색해 왔으며 숫자 키에 기본 동작 인 array_merge_recursive의 동작을 해결하기위한 해킹 같은 느낌의 솔루션을 몇 가지 발견했습니다. 예를 들어 처음에 밑줄을 추가하여 숫자를 문자열로 변경할 수 있다는 것을 읽었습니다.숫자 키로 array_merge_recursive 사용하기

어쨌든, 여기 내 데이터 세트 및 의도 결과 ...

array ("Name1", "Name2", "Name3"); 
array ("Data1", "Data2", "Data3"); 
array ("Price1", "Price2", "Price3"); 

의도 된 결과 :

array (1 => array ("Name1", "Data1", "Price1"), 2 => array ("Name2", "Data2", "Price2"), 3 => array ("Name3", "Data3", "Price3"); 

난 당신이 array_merge_recursive 일반적으로 숫자 키와 작동 방법을 알고 확신합니다. .. 내 현재 병합 된 결과가 있습니다.

array ("Name1", "Name2", "Name3", "Data1", "Data2", "Data3", "Price1", "Price2", "Price3"); 

적절한 방법이 있습니까? 문자열 키를 만들 때 밑줄을 추가하는 것과 같은 개별적인 방법에 대한 장단점은 무엇입니까? 작동해야

$merged = array_map(function() { return func_get_args(); }, $array1, $array2, $array3); 

답변

2

간단한 해결 방법은 같은 완전히 다른 방법이 될 것입니다.

+0

나는 그것을 좋아한다. 다른 모든 메서드에는 사용자 지정 함수와 여러 줄의 코드를 만드는 것이 포함됩니다. 이것은 내가 찾고있는 솔루션의 일종이고 내가 기대했던대로 작동합니다. 감사! –

+0

+1 독창성! – worenga

0
$merge_array = array(); 
for($i = 0; $i < count($array1); $i++) { 
    $row = array(); 
    $row[] = $array1[$i]; 
    $row[] = $array2[$i]; 
    $row[] = $array3[$i]; 
    $merged_array[] = $row; 
} 

:

+0

그건 다소 호소합니다 ... 그리고 그것도 재귀 적이 지 않습니다. – worenga