2010-01-29 7 views
1

배열 목록 (알 수없는 양)이 있습니다. 모든 항목을 재귀 적으로 병합해야합니다.PHP : 경고 : array_merge_recursive() : 재귀가 감지되었습니다.

어떻게 그 배열의 배열을 생성하고이 함수에 전달할 내가 않았다 그래서 :

function mergeMonth($array) 
{ 
    foreach($array as $date_string => $inner_array) 
    { 
     if(isset($temp_inner_array)) 
     { 
      $temp_inner_array = array_merge_recursive($temp_inner_array,$inner_array); 
     } 
     else 
     { 
      $temp_inner_array = $inner_array; 
     } 
    } 

    return $temp_inner_array; 
} 

이 내가 그것을 기대하지만, 때로는이 오류를 얻으려면처럼 작동 대부분의 시간 :

Warning: array_merge_recursive(): recursion detected in ... on line 89

이유를 모르겠습니까?

아이디어가 있으십니까?

감사합니다. 그때로 변경 어떤

Array 
(
    [sales] => 301.5 
    [cost] => 
    [repairs] => 0 
    [esps] => 0 
    [margin] => 301.5 
    [verified] => unverified 
) 

:

UPDATE

구조는 다음과 같이이다

Array 
(
    [sales] => 301.5 
    [cost] => 0 
    [repairs] => 0 
    [esps] => 0 
    [margin] => 301.5 
    [verified] => unverified 
) 

그것은 문제 :

참고 사람을 고정 할 수있는 사람들 나의 변화가 그것을 고쳐 주었던 이유를 설명하고, 받아 들여진 대답을 얻을 것이다!

+0

-. "당신이 물건을 취소하는 것은 매우 어렵다 함수에 넣어 배열에 대한 정보를 정기적으로하지 않고도 제공 할 수 예를 들어 경고의 결과가 나오는 사례 또는 "내부"배열의 구조를 설명하십시오. " – bish

답변

1

한 배열이 다른 배열을 참조하고있을 가능성이 있습니다.

간단한 예는

 $a = array 
     (
      'cost' => null, 
     ); 
     $b = array 
     (
      'cost' => &$a['cost'], // appears as "[cost] => " 
            // because $a['cost'] is null 
     ); 

이것은 재귀가 발생합니다.

가 난 그냥 그 일이 원인이 무엇 디자인 모르는

... @PvB에서