title: PHP - How to remove empty entries of an array recursively?
body: <p>I need to remove empty entries on multilevel arrays. For now I can remove entries with empty sub-arrays, but not empty arrays... confused, so do I... I think the code will help to explain better...</p>
  
  <pre><code>&lt;?php
  
  /**
   * 
   * This function remove empty entries on arrays
   * @param array $array
   */
  function removeEmptysFromArray($array) {
  
      $filtered = array_filter($array, 'removeEmptyItems');
      return $filtered;
  }
  
  /**
   * 
   * This is a Callback function to use in array_filter()
   * @param array $item
   */
  function removeEmptyItems($item) {
  
      if (is_array($item)) {
          return array_filter($item, 'removeEmptyItems');
      }
  
      if (!empty($item)) {
          return true;  
      }
  }
  
  
  $raw = array(
      'firstname' =&gt; 'Foo',
      'lastname'  =&gt; 'Bar',
      'nickname' =&gt; '',
      'birthdate' =&gt; array( 
          'day'   =&gt; '',
          'month' =&gt; '',
          'year'  =&gt; '',
      ),
      'likes' =&gt; array(
          'cars'  =&gt; array('Subaru Impreza WRX STi', 'Mitsubishi Evo', 'Nissan GTR'),
          'bikes' =&gt; array(),
      ),
  );
  
  print_r(removeEmptysFromArray($raw));
  
  ?&gt;
  </code></pre>
  
  <p>Ok, this code will remove "nickname", "birthdate" but is not removing "bikes" that have an empty array.</p>
  
  <p>My question is... How to remove the "bikes" entry?</p>
  
  <p>Best Regards,</p>
  
  <p>Sorry for my english...</p>