2012-04-20 1 views
0

제목이 오도 된 경우 미안합니다. 나는 정말로이 질문에 대한 좋은 제목을 생각해 낼 수 없었다.배열을 병합하려면 array_merge_recursive를 사용하지만 배열에 새로운 내용을 추가하면됩니다.

$arr1['something']['secondary_something'][]="foo1"; 
$arr1['something']['secondary_something'][]="foo2"; 
$arr1['something']['secondary_something'][]="foo3"; 

$arr2['something']['secondary_something'][]="foo4"; 
$arr2['something']['secondary_something'][]="foo5"; 

function something($array_, $array_new) { 

$array=array_merge_recursive($array_,$array_new); // to combine/merge both arrays 

print_r($array);//debugg 

} 

이제 기능은 단순히 (모든 선한)이 인쇄 :

은 내가 함수에서 함께 병합하고있어 것으로, 두 개의 배열이

Array ([something] => Array ([secondary_something] => Array ([0] => foo1 [1] => foo2 [2] => foo3 [3] => foo4 [4] => foo5))) 

하지만 필요 기본 배열에 병합 된 새 데이터로 작업하십시오. 그래서 나는 $arr2을 일해야하지만, 한 번만 $arr1과 병합되었습니다.

"새로운 데이터로 작업해야"한다고 말하면 var_export()이 배열과 관련이있는 것 중 하나입니다. 나는 단순히 echo var_export($array_new,true);을 할 경우

,이 얻을 :

array ('something' => array ('secondary_something' => array (0 => 'foo4', 1 => 'foo5',),),) 

나는이 필요로 할 때 :

array ('something' => array ('secondary_something' => array (3 => 'foo4', 4 => 'foo5',),),) 

^^ 공지 사항을 배열의 키는 3과 4가 아닌 1, 2 얼마나 기본 배열 ($arr1)과 병합되었습니다.

내가 뭘 하려는지 너희들이 이해하기를 바랍니다.

아이디어가 있으십니까?

감사의 xD

+0

array_merge가 정말로 필요합니까? 항상 새 요소를 추가하고 두 요소에서 동일한 요소를 건너 뛰지 않아도되는 경우 배열에 요소를 수동으로 추가 할 수 있습니다. 수동으로 추가 할 때 array_pop 및 count를 사용하여 새 항목을 새 배열에 추가하는 데 필요한 정보를 얻을 수 있습니다. 어쩌면 array_pop이 이전 어레이에서 제거 될 것이지만, 내가 말한 것은 – mseancole

답변

0
echo var_export(array_intersect($array['something']['secondary_something'], $arr2['something']['secondary_something']), true); 

편집이 작동하지만, 당신은 배열의 다차원 측면을 잃게됩니다. somethingsecondary_something을 var_export에 보존하려면 재귀 함수를 작성해야합니다.

+0

이 단지 배열 전체를 반환한다는 것입니다. 이는'var_export ($ array, true)'와 같습니다. –

+0

그래, 그것이 다차원 배열이라는 사실과 관련이있다. 나는 그것에 대해 연구 중이다. – SupremeDud