title: Algorithm to find amount of levels in an array of arrays
body: <p>I'm working on an algorithm to calculate the amount of levels in an array of arrays.</p>
  
  <p>The reason I need this is because I need to fetch a list of categories from the database that belongs to a category parent, and depending of the amount of levels this array has, I need to display an amount of category lists (to select categories).</p>
  
  <p>So it would be a category list for each level of categories, for example</p>
  
  <pre><code>Vehicles
          Cars
              honda
                     Red
                     Blue
                     Yellow
              ford
                     Red
              suzuki
                     Red
                     Green
              BMW
          Motorcycles
              bla bla 
                   bla bla 
  Groceries
          Fruits
              Berries
                      Red
                          Strawberries
  </code></pre>
  
  <p>So I need a function to check the amount of levels of the selected parent, for example if i pass the ID of vehicles i want it to return 4 or 3 if we count Vehicles as level 0, so I know that if the client selected Vechicles from the first list I will have to display 3 more lists.</p>
  
  <p>So far, what I have that is not working is </p>
  
  <pre><code>function count_children_level($list_of_children, $start_depth = 0){    
  
      // if the data being passed is an array
      if(is_array($list_of_children)){
  
          // amount of nodes is equal to the 
          $max = $start_depth;
  
          foreach($list_of_children as $i){
  
              $result = count_children_level($i, $start_depth + 1);
  
              if ($result &gt; $max){
  
                  $max = $result;
              }
          }
          return $max;
      }
      //if is not array
      else {
          return $start_depth;
      }
  }
  </code></pre>
  
  <p>I really need to understand how this works because i have to work with several functions like this one, so please if you can, explain your answer in detail.</p>
  
  <p>Thanks</p>