kostenloser Webspace werbefrei: lima-city


Record-Datentyp in PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t-eg

    Kostenloser Webspace von t-eg, auf Homepage erstellen warten

    t-eg hat kostenlosen Webspace.

    Ich wollte fragen ob es in PHP möglich ist ein Datentyp vom Typ record zu vereinbaren wie in Pascal?

    Bsp für record in Delphi:
    Type TMehr=record
    Name, Vorname :string;
    Alter :integer;
    end;

    und wenn ich die Frage schon stelle dann würde ich gern noch wissen wie es mit Listen aussieht:

    Type PPoint=^TElement;
    TElement=record
    Name, Vorname :string;
    Alter :integer;
    next :PPoint;
    end;


    Bitte genau erklären wie ich das in PHP machen kann!

    thx before
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich hab keine Ahnung von solch Uraltgetieren wie Pascal, aber seh dich mal bei Arrays, assoziativen Arrays und Objekten um. Oder sag, was du willst in einer verständlichen Sprache.

    Hier, ein Array:
    $arr  = array(
    array('first' => 'Nikita', 'last' => 'Popov', 15),
    array('first' => 'Max', 'last' => 'Mustermann', 333),
    ...
    )


    Meinst du so etwas?

    Beitrag zuletzt geändert: 22.1.2010 19:19:00 von nikic
  4. Autor dieses Themas

    t-eg

    Kostenloser Webspace von t-eg, auf Homepage erstellen warten

    t-eg hat kostenlosen Webspace.

    Erstmal muss ich jetzt protestieren Pascal ist an sich nicht uralt es wurde schließlich weiter entwickelt und heißt jetzt delphi win32 oder delphi.net ich dachte Pascal wenn das jemand liest weiß er sofort bescheid

    Und der Record ermöglicht mir verschiedene Werte eines Types auf einer Variable abzulegen so dass diese immer zusammengehören.
    Dies ist Besonders praktisch für die Arbeit mit Dateien!
    Und das zweite sind Pointer und ich möchte sie in dem Fall verwenden um eine Liste anzulegen:
    Listen haben den Vorteil das man zB ein Element herausnehmen kann und woanders einordnen ohne die anderen Elemente zu verschieben. Ausserdem können listen auch Formen annehmen wie einen Baum(ich glaub das heißt in englisch stack bin mir aber nicht sicher) und man kann auch einfach ein Element herauslöschen und das Element davor mit dem danach verknüpfen ohne alle Elemente zu verschieben.

    Ich hoffe jemand kann mir erklären wie ich solche dinge in PHP realisieren kann.
  5. Ah, gut. Hast du den Code gesehen, den ich oben reineditiert habe? Ich glaube das sollte grundlegend das erfüllen, was du willst, oder? Oder nicht? Wenn nicht, was erfüllt es nicht?
  6. Autor dieses Themas

    t-eg

    Kostenloser Webspace von t-eg, auf Homepage erstellen warten

    t-eg hat kostenlosen Webspace.

    $arr = array(
    array('first' => 'Nikita', 'last' => 'Popov', 15),
    array('first' => 'Max', 'last' => 'Mustermann', 333),
    ...
    )

    dann könnte ich aber genau nur einen auf first einen auf last ... legen
    in Delphi könnte ich jetzt nen Array erstellen das von dem Typ TMehr ist und dann vllt 5 oder 6 Personen darin speichern die genau zugeordnet bekommen wie sie heißen wie alt sie sind ...
    jetzt hast du bei dir die gleiche Zeile mit anderen Werten noch einmal darunter geschrieben heißt das das dies praktisch die zweite Person ist?
    Wie würde ich dann ein solches Array abfragen/weitere Personen ergänzen

    Wie würde ich eine Art Liste erstellen in der ich jederzeit ohne großen aufwand datensätze untereinander tauschen kann denn wenn ich sag ich mal 2 Mio einträge hab und ich wollte die alle um eins aufrücken lassen würde das ja mehr aufwand machen als wenn ich die kette kappe ein element herausnehme und das glied vor und hinter der Kette verknüpfe.

    Und ein Baum wie würde ich den in PHP gestalten
    (da ich ja in dem Algorithmus noch nicht ganz durchsehe wär es toll wenn du mir sagst wie es genau abläuft und ob ich vllt dadurch das ich den Algorithmus nicht richtig verstanden hab nicht dahintergekommen bin wie man das umsetzt(für listen braucht man Pointer^^ wie mach ich die oder existiert da in PHP auch ne Alternative?))
  7. In PHP gibt es keine Pointer.
    (Edit: In PHP gibts aber natürlich Referenzen, wenn du das meinst.)

    Wie das mit dem Array Funktioniert:
    $arr = array(
    array('first' => 'Nikita', 'last' => 'Popov', 'alter' =>15),
    array('first' => 'Max', 'last' => 'Mustermann', 'alter' => 333),
    ...
    )

    ist das selbe wie:
    $arr = array(
    0 => array('first' => 'Nikita', 'last' => 'Popov', 'alter' =>15),
    1 => array('first' => 'Max', 'last' => 'Mustermann', 'alter' => 333),
    ...
    )


    Wenn ich jetzt den letzten Eintrag an den Anfang packen will, könnte ich es so machen:
    array_unshift($arr, array_pop($arr));

    array_pop() entfernt das letzte Arrayelement und gibt dessen Inhalt zurück.
    array_unshift fügts an den Anfang.

    Wenn du etwas ans Ende hinzufügen willst (also einen neuen Eintrag) machst du:
    array_push($arr, array('first' => 'Daniel', 'first' => 'Irgendwer', 'alter' => 17));

    oder
    $arr[] = array('first' => 'Daniel', 'first' => 'Irgendwer', 'alter' => 17);


    Was verstehst du unter einem Baum?

    Beitrag zuletzt geändert: 22.1.2010 21:50:23 von nikic
  8. merkwürdige vorstellung °o°
    pascal ist eine STARK und php eine SCHWACH typisierende sprache (googlen). was ich für möglich halte, solche konstrukte mit klassen nachzubilden. sonst keine verwendung in php. eventuell hier weiterschmökern.

    ==== edit ====
    dem pointer kommt in etwa der & operator nahe.

    Beitrag zuletzt geändert: 23.1.2010 0:20:28 von czibere
  9. Autor dieses Themas

    t-eg

    Kostenloser Webspace von t-eg, auf Homepage erstellen warten

    t-eg hat kostenlosen Webspace.

    Danke für die Hilfe

    Gut ich hab das jetzt soweit verstanden was du mir erklärt hast.
    Eine Frage wäre noch und zwar wie mach ich das wenn ich jetzt alle Elemente ab dem 3. bis zum 7. nehme und zwischen dem 9. und 10. wieder einfügen möchte(als Beispiel)? Kann ich das machen ohne alle in ihrer Position zu verändern?

    http://forum.de.selfhtml.org/archiv/2007/9/t159472/
    ich hab hier noch was über Bäume in PHP gefunden damit denke ich ist das Thema nun abgeschlossen.
  10. schau mal hier nach

    zum Ausschneiden einer Reihe von Elementen:
    http://www.selfphp.de/funktionsreferenz/array_funktionen/array_slice.php
    (ein Teilarray wir zurückgegeben)

    Zum Ausschneiden und Einfügen von Elementen:
    http://www.selfphp.de/funktionsreferenz/array_funktionen/array_splice.php
    (Es wird ein Bereich angegeben, der ersetzt werden soll durch die Elemente eines angegebenen (Teil-)Arrays. Der zu ersetzende Bereich kann aber auch die Länge null haben, so dass nicht unbedingt Elemente gelöscht werden müssen)



    Beitrag zuletzt geändert: 24.1.2010 13:07:29 von haniwo
  11. Autor dieses Themas

    t-eg

    Kostenloser Webspace von t-eg, auf Homepage erstellen warten

    t-eg hat kostenlosen Webspace.

    Danke für die Antwort aber deine Links sind down!
    Könntest du die bitte nochmal checken?
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!