Hallo erst mal ;-),
zur Zeit scheine ich einen Blackout zu haben,
komm nicht weiter...
Ich möchte eine kunterbuntes, mehrdimensionales
Array so formatieren, dass am Ende nur noch
ein "sauberes", mehrdimensionales Array vorhanden
ist, dessen Werte nicht leer sind.
Dabei 2 Möglichkeiten in Funktionparameter möglich:
1. Bei allen leeren Werten die keys entfernen
2. Wenn in einer Struktur alle Werte(nur dann)
leer sind, den ersten key(ebene 1) entfernen.
Kunterbuntes Array:
$values[] = "einzelner Wert";
$values[] = "";
$values['alpha'] = array('dyn' =>0, 'stat' =>'hund','xtra' =>2);
$values['beta'] = array('blabla' =>'', 'stat' =>'','xtra' =>'',array('a','b','c'));
$values['gamma'] = array('dyn' =>'katze', 'stat' =>5,'xtra' =>'');
$values[] = "";
$values['delta'] = array('farbe' =>'', 'stat' =>'','xtra' =>'');
--------------------------
Erwünschtes Zielarray 1( also leere Inhalte/Schlüssel entfernen):
$values[] = "einzelner Wert";
$values['alpha'] = array('dyn' =>0, 'stat' =>'hund','xtra' =>2);
#$values['beta'] = array(array('a','b','c')); unnötiges leerees Array
also soll werden zu :
$values['beta'] = array('a','b','c');
$values['gamma'] = array('dyn' =>'katze', 'stat' =>5);
------------------
Erwünschtes Zielarray 2
(Haupstruktur Struktur entfernen, nur wenn "alle" werte leer sind):
$values[] = "einzelner Wert";
$values['alpha'] = array('dyn' =>0, 'stat' =>'hund','xtra' =>2);
$values['beta'] = array('blabla' =>'', 'stat' =>'','xtra' =>'',array('a','b','c'));
$values['gamma'] = array('dyn' =>'katze', 'stat' =>5,'xtra' =>'');
------------------------------------------
Erster Lösungsansatz:
function redu_array($ar,$option = 1)
{
// option 1 = Keys reduzieren
// option 2 = Erste Ebene entfernen
foreach($ar as $k =>$w)
{
if(is_array($w)){redu_array($ar[$k]);}// weitere ebenen suchen
elseif(!$w){
unset($ar[$k]);
unset($w);
}
return $ar;
} // end of func.
------------------------------
Das funktioniert natürlich nicht ganz, aber
ich komme einfach nicht weiter... (seit 2 Tagen ;-)
Weiss jemand Rat oder kennt jemand eine Funktion zu diesem Zweck ?
Gruss und Dank
Nikki