Tom: Kuddelmuddel-Array rekursiv reduzieren

Beitrag lesen

Hello,

Hallo Dedlfix,
erst mal VIELEN DANK.
Deine Modifizierung klappt einwandfrei, wenngleich
ich mich immer noch schwer tue das ganze bildhaft
und vor allem chronologisch nachzuvollziehen, aber
ich komm schon dahinter ;-)

Ich bin immer noch nicht davon überzeugt, dass du dir mit dem großen Datenhaufen einen Gefallen tust. Es wird auch nicht besser, wenn du den großen Datenhaufen erst auf Überflüssiges hin auswertest, um dann die den kleineren Datenhaufen nach anderen Kriterien auszuwerten.

Ja, lieber wäre mir auch ich müsste nicht alles
unnötige (leere Arrays/werte) über den Browser senden.
Hatte das Problem schon mal hier angefragt und Du hattest
versucht zu helfen: http://forum.de.selfhtml.org/archiv/2005/2/t101154/

Aber leider fällt mir keine Alternative ein und so leistet
mir diese Funktion jetzt doch schon Einiges an Scriptreduzierung.

Hier nochmal die komplette Funktion inclusive option 2,
für alle Dies nutzen wollen.

function redu_array($ar,$option =1)
{

// option 1 = Keys in allen Ebenen reduzieren, wenn kein Wert
// option 2 = Auf erste Ebene entfernen, wenn kein Wert

Das erste Array als Kopie für option 2

if($option == 2){$ar_org = $ar;}

foreach($ar as $k =>$w)
{

if (is_array($w)){$ar[$k] = redu_array($w);}  # das ist die Stelle, an der man
    if (empty($ar[$k])){unset($ar[$k]);}          # das Verhalten der Funktion wesentlich
  }                                               # beeinflusst. Die Löschung findet hier erst
                                                  # auf dem Rückweg statt.

if(count($ar)==1){reset($ar);}

if($option ==2){
foreach($ar_org as $k =>$w){if(!$ar[$k]){unset ($ar_org[$k]);}}
$ar = $ar_org; unset($ar_org);
}

return $ar
} // end of func.


Du musst Dir wirklich einfach nur ein Bild vom Funktionsablauf malen. Dann wird es doch klar, was da passiert. Und immer dran denken: in PHP sind 'Arrays' als Baumstrukturen (verkettete Listen mit Seitenarmen) aufgebaut.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau