depp: Array sich selbst übergeben ;-)

moin.
hört sich irgendwie eigenartig an... egal!
hab nen array dieser form:
$arr["Kategorie"]["Unterkategorie"]["Unterpunkt"]="...";
nun will ich, dass bei anzeige des inhalts dieses arrays auch noch dessen komplette bezeichnung ausgelesen wird.
also irgendwas in der form: Anzeige des Arrays, Unterkategorie, Unterpunkt

Da es sehr viele kategorien und unterpunkte sind... würde ich es bevorzugen, wenn das ganze irgendwie automatisch realisierbar wäre.

also es sollte letztendlich so ne source werden:
$arr["Kategorie"]["Unterkategorie"]["Unterpunkt"]=anzeige($_self_)."...";

gibts da irgendne funktion, die das kann?

danke

  1. Hallo,

    $arr["Kategorie"]["Unterkategorie"]["Unterpunkt"]="...";
    nun will ich, dass bei anzeige des inhalts dieses arrays auch noch dessen komplette bezeichnung ausgelesen wird.
    also irgendwas in der form: Anzeige des Arrays, Unterkategorie, Unterpunkt

    Wenn du das komplette Array mit allen Indizes und ihren Werten ausgeben willst, benutze print_r($name_des_arrays);

    Gruß aus http://www.bonn.de/
    Sven

    --
    Do it yourSELF 'cause SELFmade is bestmade.
    Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
    Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
    Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
    Für alle Forum-Neulinge:
    1.http://de.selfhtml.org/
    2.http://suche.de.selfhtml.org/ -> http://forum.de.selfhtml.org/archiv/
    3.http://forum.de.selfhtml.org/faq/ -> http://forum.de.selfhtml.org/cgi-bin/fo_post
    1. Hallo,
      Wenn du das komplette Array mit allen Indizes und ihren Werten ausgeben willst, benutze print_r($name_des_arrays);

      nein, ich will nur das element/feld selbst übergeben.
      ist hierfür evt. $this das richtige?

      also z.b. bei
      $arr[test][test1]=...
      $arr[test][test2]=tue_irgendwas($this); >> test,test2
      $arr[test][test3]=...

      die andren felder interessieren dabei nicht.
      nur das feld sebst.

      1. Hallo,

        Wenn du das komplette Array mit allen Indizes und ihren Werten ausgeben willst, benutze print_r($name_des_arrays);

        nein, ich will nur das element/feld selbst übergeben.
        ist hierfür evt. $this das richtige?

        Übergeben - ausgeben - ?

        also z.b. bei
        $arr[test][test1]=...
        =; >> test,test2
        $arr[test][test3]=...

        die andren felder interessieren dabei nicht.
        nur das feld sebst.

        Wenn du nur das eine Feld an eine Funktion übergeben willst, kannst du ja tue_irgendwas($arr[test][test2]); schreiben.

        Sorry, allzu  viel über PHP weiß ich auch nicht, bin selbst noch am lernen.
        BTW: Unter http://www.php.net/manual/de/language.types.array.php findest du zahlreiche Beispiele für den Zugriff auf Arrays.

        Gruß aus http://www.bonn.de/
        Sven

        --
        Do it yourSELF 'cause SELFmade is bestmade.
        Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
        Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
        Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
        Für alle Forum-Neulinge:
        1.http://de.selfhtml.org/
        2.http://suche.de.selfhtml.org/ -> http://forum.de.selfhtml.org/archiv/
        3.http://forum.de.selfhtml.org/faq/ -> http://forum.de.selfhtml.org/cgi-bin/fo_post
      2. Hi!

        $arr[test][test2]=tue_irgendwas($this); >> test,test2

        Abgesehen davon dass das wenigstens

        $arr['test']['test2']

        heißt ;-),  verstehe ich nicht den Sinn und Zweck.

        'test' und 'test2' hast Du an dieser Stelle so oder so "hartverdrahtet" im Code stehen, also was versprichst Du Dir dann davon dieses per Funktion zu ermitteln?

        Angenommen Du willst eben konkret den "Pfad" von
        $arr['test']['test2'] formatiert ausgeben, wann genau passiert das? Wie wird festgelegt dass genau dieses Element abgefragt werden soll?

        Angenommen Du hast ein Menü, welches Du über Pfade abbildest, dann könntest Du Dich ja an dieser Stelle im Pfad /test/test2 befinden. Das kannst Du natürlich verwenden um

        1. den Pfad auszugeben, und
        2. um das Element aus dem Array zu ermitteln.

        Oder Du verwendest eine andere Struktur, mit Parent-IDs:

        $arr[1] = array ('pid' => 0, 'val' => test);
        $arr[2] = array ('pid' => 1, 'val' => test1);
        $arr[3] = array ('pid' => 1, 'val' => test2);
        $arr[4] = array ('pid' => 1, 'val' => test3);
        $arr[5] = array ('pid' => 3, 'val' => test21);
        $arr[6] = array ('pid' => 3, 'val' => test22);

        Wenn Du jetzt z.B. von $arr[5] ausgehst, kannst Du über die Parent-ID $arr[3] ermitteln, und hier $arr[1].

        Das nur mal als Beispiel, hier gibt es viele Möglichkeiten.

        Grüße
        Andreas

        --
        SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
        1. also, das problem scheint nicht korrekt rüber gekommen zu sein...
          ich versuchs nochmal anders.

          Du hast nen mehrdimensionalen array, dem eine funktion zugeordnet ist.
          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.

          wäre nett, wenn mir doch jmd helfen könnte...

          danke

          1. 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/