2014-09-12 2 views
0

I는이 배열을 3 레벨부모와 자식에 따른 다른 배열에서 PHP 배열을 채우는 값

시험 ID 값을

Array 
(
    [BIOCHEMISTRY] => Array 
    (
     [BloodRoutine] => Array 
      (
       [DifferentialCount] => Array 
        (
         [itemId] => 552 
         [catId] => 2 
         [testId] => 1 
         [parent] => 0 
         [title] => FBS 
         [unit] => mg% 
         [amount] => 20 
         [catName] => BIOCHEMISTRY 
        ) 

      ) 

    ) 
) 

있는 경우 배열을 채워야

Array 
(
    [BIOCHEMISTRY] => Array 
    (
     [BloodRoutine] => Array 
      (
       [DifferentialCount] => Array 
        (
         [itemId] => 552 
         [catId] => 2 
         [testId] => 1 
         [parent] => 0 
         [title] => FBS 
         [unit] => mg% 
         [amount] => 20 
         [catName] => BIOCHEMISTRY 
        ) 
       [ESR]=>2 
       [PPR]=>4 

      ) 
     [PCV]=>3 

    ) 
) 

ESR에 값이있는 경우 배열을 채울 필요가 있습니다. 에 대한 자식 값이 없습니다. DifferentialCount

Array 
(
    [BIOCHEMISTRY] => Array 
    (
     [BloodRoutine] => Array 
      (

       [ESR]=>2 

      ) 

    ) 
) 

은 내가 PCV 값,

Array 
(
    [BIOCHEMISTRY] => Array 
    (

     [PCV]=>3 

    ) 
) 

나에게이 작업을 수행하는 동적 기능을주십시오 에 대한 아이의 없음 값 BloodRoutine

이있는 경우 배열을 채울 필요가있다.

감사합니다.

답변

1

은 함수로 포장,

foreach($input as $key1=>$level1) { 
    if(is_array($level1)) { 
     foreach($level1 as $key2=>$level2) { 
      if(is_array($level2)) { 
       foreach($level2 as $key3=>$level3) { 
        if(is_array($level3)) { 
         foreach($level3 as $key4=>$level4) { 
          if(isset($level4)) { 
           $output[$key1][$key2][$key3][$key4]=$level4; 
          } 
         } 
        } 
        else { 
         if(isset($level3)) { 
          $output[$key1][$key2][$key3]=$level3; 
         } 
        } 
       } 
      } 
      else { 
       if(isset($level2)) { 
        $output[$key1][$key2]=$level2; 
       } 
      } 
     } 
    } 
    else { 
     if(isset($level1)) { 
      $output[$key1]=$level1; 
     } 
    } 
} 
echo '<pre>';print_r($output);echo '</pre>'; 
+0

하는 기능을 쓸 수보십시오 ... – Bukky

0

사용 foreach는 함수 및 루프 배열 통해 을 확인의 foreach에서 $ 키를 사용하는 경우 ($ 키 == 'testid를') {// 채우기} 경우 ($ 키 == 'ESR') 및 현명한 것. 코딩 편의를 위해 별도의 foreach에서 수행해야합니다.

+0

당신이 좋았어요 같은 – Ajeesh

관련 문제