2016-12-08 4 views
0

데이터베이스를 개별적으로 삽입 할 수 있도록 루프를 실행하려는 다차원 배열이 있습니다. 다차원 배열은 무한 수의 깊이를 가질 수 있습니다.다차원 배열을 반복하고 PHP를 사용하여 부모 ID를 가져옵니다.

foreach($categories as $category){ 
    $data = array(
     'name'  => $category['name'], 
     'slug'  => $category['slug'], 
     'parent' => $category['parent'], 
    ); 
    update_category($category['id'], $data); 
} 

어떤 도움을 크게 감상 할 수있다 : 나는이 같은 쉽게 루프를 할 수있는 배열에 위의 코드를 포맷하고 싶은

Array 
(
    [0] => Array 
     (
      [slug] => item-slug-1 
      [name] => Item 1 
      [id] => 1 
      [children] => Array 
       (
        [0] => Array 
         (
          [slug] => item-slug-2 
          [name] => Item 2 
          [id] => 2 
          [children] => Array 
           (
            [0] => Array 
             (
              [slug] => item-slug-3 
              [name] => Item 3 
              [id] => 3 
              [children] => Array 
               (
                [0] => Array 
                 (
                  [slug] => item-slug-4 
                  [name] => Item 4 
                  [id] => 4 
                 ) 

                [1] => Array 
                 (
                  [slug] => item-slug-5 
                  [name] => Item 5 
                  [id] => 5 
                 ) 

               ) 

             ) 

           ) 

         ) 

       ) 

     ) 

) 

: 여기처럼 보이는 방법이다.

답변

0
function walk_and_update($data) { 
    if(is_array($data)) { 
     foreach($data as $key => $row) { 
      update_category($row['id'], array(
       'name'  => $row['name'], 
       'slug'  => $row['slug'], 
       'parent' => $row['parent'], 
      )); 

      if(isset($row['children'])) { 
       walk_and_update($row['children']); 
      } 
     } 
    } 
} 
관련 문제