Foros del Web » Programando para Internet » PHP »

[Aporte] Eliminar elementos vacíos en un array

Estas en el tema de [Aporte] Eliminar elementos vacíos en un array en el foro de PHP en Foros del Web. 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: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 09/07/2014, 04:24
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
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
  #2 (permalink)  
Antiguo 09/07/2014, 07:40
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 8 meses
Puntos: 26
Respuesta: [Aporte] Eliminar elementos vacíos en un array

¡Gracias por el aporte! Un saludo.

Etiquetas: elementos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:41.