De manière récursive supprimer des éléments vides et les sous-réseaux à partir d'un tableau multidimensionnel

Je n'arrive pas à trouver une simple solution simple pour le vieux problème de la suppression des éléments vides de tableaux en PHP.

Mon tableau d'entrée peut ressembler à ceci:

Array ( [0] => Array ( [Name] => [EmailAddress] => ) ) 

(Et ainsi de suite, si il y a plus de données, mais il y a peut-être pas...)

Si ça ressemble à ce qui précède, je veux qu'il soit complètement vide après que je l'ai traitée.

Donc print_r($array); de sortie:

Array ( )

Si je lance $arrayX = array_filter($arrayX); que j'ai toujours l' même print_r de sortie. Partout où j'ai regardé suggère que c'est la façon la plus simple de supprimer vide d'éléments de tableau en PHP5, cependant.

J'ai aussi essayé $arrayX = array_filter($arrayX,'empty_array'); mais j'ai eu l'erreur suivante:

Avertissement: array_filter() [function.tableau-filtre]: Le deuxième argument, 'empty_array', doit être valide rappel

Ce que je fais mal?

array_filter est définie pour les tableaux 1D.
Pouvez-vous donner un exemple de saisie, avec la sortie attendue s'il vous plaît? Il y a plusieurs façons d'interpréter à ta question, "Si ça ressemble à ce qui précède, je veux qu'il soit complètement vide après que j'ai traité il." me jetant hors, voulez-vous qu'il soit totalement parti ou à un tableau vide?
Votre nouveau message d'erreur est parce que empty_array n'est pas une fonction définie. Je me demande aussi ce que votre réel de cas d'utilisation est ici...
La bonne réponse est dans les commentaires cidessous le accepté question. Je ne sais pas pourquoi Wesley n'a pas le tirer dans sa réponse, mais je l'ai ajouté à maintenant.
Tu serais vexé si le titre a été changé pour: Remove empty elements then empty subarrays from a 2d array? Cette clarification, de l'OMI, est important car en double page, les fermetures peuvent être mieux ciblé de cette manière.

OriginalL'auteur Chuck Le Butt | 2012-03-27