Daten in ein Array anfügen ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten in ein Array anfügen ?

    Hallo zusammen,
    kann man mit php nur Daten an den Anfang oder an das Ende eines Arrays anfügen, oder kann man auch Daten mitten in ein Array einfügen ? Unter C++ kann man das mit der Container STL Vektor lösen, gibt es so etwas auch unter php ? Ich habe in der Doku nur die normalen Array-Funktionen Push, Pop, Shift und Unshift gefunden.

    Zur Information, ich möchte folgendes Problem lösen:
    Ich habe ein Menü für eine Homepage von der Konfiguration/Erweiterung per Textdatei auf eine MySQL-DB umgestellt. Eine Zeile besteht aus einer eindeutigen ID, einer Menü_id (z.B. 9, 9_1, 9_1_1 usw), einer Menübezeichnung, dem Link und einem Feld, welches angibt wieviele Untermenüpunkte vorhanden sind.
    Wenn ich jetzt einen Menüpunkt mittendrin hinzufügen will, muß ich momentag alle darauffolgenden Menüpunkte händisch um eins verschieben. Dies würde ich gerne per PHP-Script automatisieren.
    Wenn ein First-Level Menüpunkt (z.B. 9) hinzugefügt wird, sollen alle darauffolgenden Punkte um eins nach hinten geschoben werden. Wenn ein Menüpunkt gelöscht wird, sollen alle folgenden Punkte um eins nach vorne geschoben werden. Desweiteren sollen Menüpunkte "verschoben" werden können. Wenn ein Untermenüpunkt angelegt wird, muß in dem First-Level-Menüpunkt die Anzahl der Untermenüpunkte erhöht werden.

    Ich hatte mir als Lösung überlegt, die komplette Tabelle Menü in ein Array einzulesen, die Veränderungen entsprechend vorzunehmen, das Array zu sortieren, die aktuellen Daten in der Tabelle Menü zu löschen und dann die Dates des Arrays in die Tabelle Menü zu schreiben.

    Gibt es für das Problem oder evtl. für Teilprobleme fertige Funktionen oder Scripte, mit welchen das Problem zu lösen ist ? Ich habe dazu bisher nichts gefunden. Auch Literaturhinweise oder Lösungsansätze sind willkommen, da ich momentan noch absolut keine Idee habe, wie ich das Problem lösen kann.

    Danke und Viele Grüsse

    Heiko

  • #2
    Re: Daten in ein Array anfügen ?

    hmm,

    Wenn ein First-Level Menüpunkt (z.B. 9) hinzugefügt wird, sollen alle darauffolgenden Punkte um eins nach hinten geschoben werden. Wenn ein Menüpunkt gelöscht wird, sollen alle folgenden Punkte um eins nach vorne geschoben werden. Desweiteren sollen Menüpunkte "verschoben" werden können. Wenn ein Untermenüpunkt angelegt wird, muß in dem First-Level-Menüpunkt die Anzahl der Untermenüpunkte erhöht werden.
    imho ists wohl einfacher, die position der items innerhalb ihrer ebene zu speichern und zu verändern, ein neues item wird am ende angefügt, und kann dann wie alle anderen verschoben werden. dabei ändert sich lediglich die 'pos' (integer-wert).

    erscheint mir sinniger, als die veränderung aller nachfolgenden abhängigkeiten ...

    nd einem Feld, welches angibt wieviele Untermenüpunkte vorhanden sind.
    wozu? diese anzahl ist doch schon durch die existenz der unterpunkte definiert? bei veränderungen mußt du dann ja an zig stellen rumschrauben, anstatt einer.

    schau dir mal alternativ das 'nested sets' modell an.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar

    Lädt...
    X