2015-01-29 4 views
0

숫자 키를 사용하는 두 배열을 병합하는 방법을 알아 내려고하고 있습니다.숫자 키가 겹치는 배열 병합

Array 
    (
     [1] => Array 
      (
      [service] => Array 
      (
       [1] => Array 
        (
         [name] => Emergency 
         [Price] => 10 
         [start_date] => 2015-01-01 
        ) 

      ) 

      [calls] => Array 
      (
       [123456789] => Array 
        (
         [total] => 150 
         [Price] => 10 
         [cdrs] => Array 
          (
           [1] => Array 
            (
             [src] => 123456789 
             [dist] => 987654321 
            ) 

          ) 

        ) 

      ) 

     ) 

) 
: 내가 지금처럼 나타나는 결과 배열로 끝날 필요가 둘 다 고객 번호 1에 속하는으로

$array1[1] = array('service'=>array(1=>array('name'=>'Emergency','Price'=>10,'start_date'=>'2015-01-01'))); 
$array2[1] = array('calls'=>array('123456789'=>array('total'=>'150','Price'=>10,'cdrs'=>array(1=>array('src'=>123456789,'dist'=>987654321))))); 

그들은 모두 하나의 키를 가지고 : 나는 예를 들어 두 개의 배열을 가지고

이 방법은 두 가지 방법을 사용하여 두 개의 방대한 배열을 반환 한 다음 간단하게 병합하고 반복 할 수 있습니다.

$merged = $array1 + $array2; 

그러나, 어느 방법은 목표를 달성 단순히 하나 또는 다른를 반환하는 것 같다

나는 모두 array_merge 내가 알고 아니었다 또한 다음을 시도했다. 나는 이것을 달성 할 수있는 방법에 관해서 조언을 해 줄 사람이 있습니까?

+0

,하지만 난 PHP에 익숙하지 않다 - 어떻게 다시 병합 하시겠습니까? 그것은 단순한 오름차순/내림차순입니까, 아니면 다른 것입니까? 일반적으로 직접 병합 기능을 구현할 것입니다. 그것은 extreamly 복잡해서는 안됩니다. –

답변

0

지금은 테스트 할 수 없지만 제대로 작동해야합니다.

$newArray = []; 
for($i = 0; $i < sizeof($array1);$i++){ 
    $newArray[] = array_merge($array1[$i],$array2[$i]); 
} 
return $newArray; 
0

로 기능 array_merge_recursive을 사용하여 두 배열을 병합 : 당신이 대답 할 수있을 것

$result[1] = array_merge_recursive($array1[1],$array2[1]); 
    //You can change key as per your need may be dynamic 
    print_r($result);