2016-12-08 3 views
0

Ich habe ein multidimensionales Array, das ich eine Schleife ausführen möchte, so dass ich in meine Datenbank einzeln einfügen konnte. Das multidimensionale Array kann unendlich viele Tiefen haben. Hier ist, wie es aussieht:Schleife durch ein mehrdimensionales Array und Eltern-ID mit PHP

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 
                 ) 

               ) 

             ) 

           ) 

         ) 

       ) 

     ) 

) 

ich den obigen Code in ein Array zu formatieren möchte, dass ich so leicht durchlaufen kann:

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

Jede Hilfe wäre sehr geschätzt.

Antwort

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']); 
      } 
     } 
    } 
} 
Verwandte Themen