Andreas Korthaus: Array sich selbst übergeben ;-)

Beitrag lesen

Hi!

also, das problem scheint nicht korrekt rüber gekommen zu sein...

Ich verstehe auch gar nicht wie man so ein Problem bekommen kann ;-)

Du hast nen mehrdimensionalen array, dem eine funktion zugeordnet ist.

Wir ordnest Du einem Array eine Funktion zu? Das was Du da geschrieben hast - abgesehen dass $this nur in einem Objekt existiert - wird dazu führen dass die Funktion den ihr übergebenen Wert bekommt, irgendwas damit macht, und evtl. einen Wert zurückgibt, der dann in den Array als Wert geschrieben wird.

Du misbrauchst Array-Schlüssel, um darin Werte zu speichern, das sieht natürlich praktich aus, ist aber so nicht gedacht und führt zu so Problemen wie Du sie gerade hast. Du solltest Deine Daten anders organisieren.

Du kennst weder die genaue bezeichnung, noch sind Dir die IDs bekannt; sondern Du hast nur diese funktion zur verfügung, der Du beliebig viele parameter übergeben kannst... sonst nichts!
hab leider keine andre möglichkeit.

Du kannst einer Funktion nur einen Wert oder eine Referenz auf einen Wert übergeben.

$arr["Kategorie"]["Unterkategorie"]["Unterpunkt"]=anzeige($_self_)."...";

Ich sehe nicht wirklich die Notwendigkeit Deines Arrays. Was ist daran anders/besser als:

$arr[1]=array("Kategorie","Unterkategorie","Unterpunkt");
anzeige($arr[1])."...";

Wie gesagt verstehe ich dass Dein Array für Dich praktisch aussieht, ist er aber nicht. Mal angenommen Deine obige Variante würde so funktionieren.Vermutlich hat $arr mehrere dieser Elemente. Wie willst Du in einem Script auswählen, mit welchem Array-Element die Funktion anzeige() aufgerufen wird?

Stell Dir vor Du hast:
$arr["Kategorie"]["Unterkategorie1"]["Unterpunkt1"]=anzeige($_self_)."...";
$arr["Kategorie"]["Unterkategorie2"]["Unterpunkt1"]=anzeige($_self_)."...";
$arr["Kategorie"]["Unterkategorie2"]["Unterpunkt2"]=anzeige($_self_)."...";

Angenommen das würde funktionieren, würden jetzt alle 3 Menüs angezeigt. Angenommen Du willst nur Kategorie, Unterkategorie2, Unterpunkt2 anzeigen - wie machst Du das?

Ich denke Du muss das Problem prinzipiell anders angehen.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/