Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2014, 04:24
Avatar de bet7o
bet7o
 
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 20
[Aporte] Eliminar elementos vacíos en un array

Hola compañeros,

Les dejo una función para eliminar los elementos vacíos de un arreglo, en PHP, soporta arreglos anidados.

La función:

Código PHP:
Ver original
  1. function removeEmptyElements(&$element)
  2. {
  3.     if (is_array($element)) {
  4.         if ($key = key($element)) {
  5.             $element[$key] = array_filter($element);
  6.         }
  7.  
  8.         if (count($element) != count($element, COUNT_RECURSIVE)) {
  9.             $element = array_filter(current($element), __FUNCTION__);
  10.         }
  11.  
  12.         return array_filter($element);
  13.     } else {
  14.         return empty($element) ? false : $element;
  15.     }
  16. }

Ejemplo de uso:

Código PHP:
Ver original
  1. $data = array(
  2.     'horarios' => array(),
  3.     'grupos' => array(
  4.         '1A' => array(
  5.             'Juan' => array(
  6.                 'calificaciones' => array(
  7.                     'Matematicas' => 8,
  8.                     'Español' => 5,
  9.                     'Ingles' => 9,
  10.                 ),
  11.                 'asistencias' => array(
  12.                     'enero' => 20,
  13.                     'febrero' => 10,
  14.                     'marzo' => '',
  15.                 )
  16.             ),
  17.             'Damian' => array(
  18.                 'calificaciones' => array(
  19.                     'Matematicas' => 10,
  20.                     'Español' => '',
  21.                     'Ingles' => 9,
  22.                 ),
  23.                 'asistencias' => array(
  24.                     'enero' => 20,
  25.                     'febrero' => '',
  26.                     'marzo' => 5,
  27.                 )
  28.             ),
  29.         ),
  30.         '1B' => array(
  31.             'Mariana' => array(
  32.                 'calificaciones' => array(
  33.                     'Matematicas' => null,
  34.                     'Español' => 7,
  35.                     'Ingles' => 9,
  36.                 ),
  37.                 'asistencias' => array(
  38.                     'enero' => null,
  39.                     'febrero' => 5,
  40.                     'marzo' => 5,
  41.                 )
  42.             ),
  43.         ),
  44.     )
  45. );
  46.  
  47. $data = array_filter($data, 'removeEmptyElements');
  48.  
  49. var_dump($data);


Saludos.
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana

Última edición por bet7o; 09/07/2014 a las 06:32