[PHP] Arrays [/PHP]

  • Arrays
    In einem Array könnt Ihr mehrere Werte zusammenschließen, die semantisch
    verwandt sind. Jedes Element ist entweder über einen eindeutigen Namen (assoziatives Array) oder über eine Nummer (numerisches Array) ansprechbar, den sogenannten Schlüssel.
    Ein Array ist also eine Ansammlung von Schlüssel-Wert-Paaren. Sofern Ihr beim Hinzufügen eines Elements zum Array keinen Schlüssel vergeben, wird automatisch eine fortlaufende
    Nummer verwendet, beginnend bei 0.

    Beispiel:

    Spoiler anzeigen
    PHP
    <?php$array = array();array[] = 'erstes Element';?>


    Zunächst wird das Array leer initialisiert. Dies geschieht mit dem Sprachkonstrukt.

    • array();

    Dann wird ein Element hinzugefügt, das fortan über den Bezeichner $array[0] angesprochen und verändert werden kann.
    Die leere Initialisierung müsst Ihr nicht voranstellen. PHP ist auch in diesem Fall sehr kulant und quittiert das Befüllen
    eines nicht existenten Arrays nicht mit einer Fehlermeldung.


    Ihr müsst nicht zwingend eine fortlaufende Reihenfolge der Schlüssel enthalten. Im Falle eines assoziative Arrays ist eine
    nummerische Reihenfolge auch nicht immer möglich. PHP hält für jedes Array, das Ihr erstellt, eine interne Ordnung
    aufrecht. Die Ordnung eines Arrays wird nur dann verändert, wenn Ihr das Array nach den enthaltenen Werten sortiert.
    Durch die folgende Anweisungen werden die Arrayfelder 3 und 5 belegt.

    PHP
    $array[3] = 'zweites element';$array[5] = 'drittes element';


    Die Schlüssel 1, 2 und 4 wurden somit ausgelassen. Die Daten, die Ihr in dem Array speichern, können zudem von unterschiedlichen
    Datentypen sein. Sie können beispielweise Strings mit Zahlen mischen.

    PHP
    $array[7] = 'nächstes Element';$array[9] = 5;


    Sofern Ihr nur skalare Werte in einem Array speichern, also Zeichenketten, boolesche Warheitswerte sowie Ganz- und Fließkommazahlen,
    spricht man von einem eindimensionalen Array. Allerdings kann ein Arrayfeld auch in ein weiteres Array enthalten. Somit entsteht eine
    Hierarchie, ein sogenanntes mehrdimensioanles Array.

    PHP
    $array[10] = array('a', 'b', 'c', 'd');

    +


    Das Unterarray in $array[10] wurde nicht leer initialisiert, sondern mit vier Werten befüllt. Es hat keine eigenen Namen, sondern ist anonym.
    Die Werte des Unterarrays sind über die Schlüssel $array[10][0] bis $array[10][3] ansprechbar. Die vorangegangen Beispiele, zeigen, dass
    Ihr das Sprachkonstrukt array() verschiedener Weise benutzen könnt. Zum einen ist die leere Initialisierung eines Arrays möglich.
    Zum anderen lassen sich damit Arrays in einem Schritt erstellen und befüllen. Allerdings gilt dies nicht nur für numerische Arrays so wie bei
    array('a', 'b', 'c', 'd') der Fall war. Ebenso gut könnt Ihr den Werten nicht numerische und unsortierte Bezeichner geben:


    PHP
    $assozArray = array(' weitererSchlüssel '=>'a', 'key'=>'b');


    Ein Schlüssel-Wert-Parr wird durch den Operator=> verbunden. Auch für assozitive Arrays bleibt die definierte Ordung der Elemente erhalten,
    auch wenn kein Sortierung besteht.

    Beispiel:

    Spoiler anzeigen
    PHP
    $array[11] = ['a', 'b', 'c', 'd'];?>

    Die eckigen Klammern sind für ein abgekürzte Syntax, die dem array() gleichzustellen ist. Wie mit vielen anderen Abkürzungen auch, empfehle ich
    Euch: Diese Schreibweise könnt Ihr euch auch angewöhnen, wenn Ihr erst einmal mit PHP vertraut seid. Für die ersten Schritte solltet Ihr die ausgeschriebene
    Form wählen, um sich besser in Euren Programmen zurechtzufinden. Dann seht Ihr auf den ersten Blick, ob es sich bei einer Variablendefinition um ein Array
    handelt oder nicht.

    Beispiel:

    Spoiler anzeigen
    PHP
    'b' => 'Berlin',
    'a'=> 'Beispiel','d'=> 'Beispiel2','c'=> 'Beispiel3',


    Eine Sortierung der Schlüsseln mit ksort($beispiele) führt letztlich zu folgenden Aufstellung:

    Spoiler anzeigen
    PHP
    'a'=> 'Berlin','b'=> 'Beispiel','c'=> 'Beispiel2','d'=> 'Beispiel3'




    Arrays lassen sich genau wie Strings durschsuchen. Dazu dienen die beiden Befehle:

    • bool in_array()(mixed $suche, array, $array[, bool $typ])
    • mixed array_search(mixed $suche, array, $array[, bool $typ])

    Gesucht wird nach den Werten und nicht nach den Schlüsseln im Array. Im ersten Fall wird nur
    true oder false zurückgegeben, je nachdem, ob $suche in $array vorhanden ist. Die Funktion
    array_search() hingegen liefert im Erfolgsfall den Schlüssel; bei Missfolg wird auch false
    zurückgeliefert. Als Beispiel soll wieder $städte dienen, und zwar in der From, in der es ursprünglich definiert wurde:

    Spoiler anzeigen
    PHP
    in_array('Berlin', $städte) //ergibt wahrin_array('Köln', $städte) //ergibt falscharray_search('Berlin', $städte) //ergibt 'a'


    Der dritte optionale Parameter schaltet zwischen typsicherer und nicht typsicherer Suchmethode um. Im Standartfall ist
    $typ auf false gesetzt, dabei wird mit dem Operator == verglichen, und die Suche ist nicht typsicher. Bei $typ = true wird
    stattdessen == für die Suche verwendet.

    Der Parameter $suche kann unterschiedliche Datentypen besitzen - deswegen auch die Angabe des Pseudo-Datentyps mixed.
    Dies umfasst nicht nur skalare Datentypen. Ebenso gut lässt sich in Arrays auch nach Arrays suchen. Um die zu verdeutlichen,
    führen wir die Suche in $array durch, das wir in diesem Abschnitt zuallererst definiert hatten:

    Spoiler anzeigen
    PHP
    $gesucht = array('a', 'b', 'c', 'd');echo array_search($gesucht, $array); //die Ausgabe ist 10

    Merke: Um in einem Array nach einem Schlüssel zu suchen, könnt Ihr den Befehl

    • bool array_key_exist(mixed $suche, array $array)

    benutzen.


    Analog zu in_array() erhaltet Ihr dabei nur true oder false als Antwort. Alternative
    dazu könnt Ihr allerdings auch die Existenz über die allgemeine Funktion isset() erfragen.
    Beide kommen zu indentische Ergebnisse:

    Spoiler anzeigen
    PHP
    array_key_exists('a', $städte) //ergibt wahrisset($städte['a]) //war und semantisch gleich


    Jedes Array hat einen internen Zeiger, der immer auf eines der bestehende Elemente verweist.
    Dieser Zeiger wird als beispielweise beim Durchlaufen des Arrays sukzessive über alle Felder bewegt,
    um jedes Element genau einmal anzusprechen. Das geschieht transparent, das heißt, das Bewegen
    des Zeigers wird Euch vom Parser abgenommen. Allerdings könnt Ihr den Zeiger auch manuell verändern.
    Dazu gibt es eine Reihe von Befehlen, die in (kommenden Fortsetzung zu erkennen sind.).
    Das Array ist demnach eine sotierte Liste von Feldern nur skalare Werte enthalten, es sich also um ein
    eindimensionales Array handelt. In mehrdimensionalen Arrays wird die Zeigerstruktur demnach komplexer.
    Manipulieren lässt sich die Zeigerstellung über die Funktion, (die auch in kommender Fortsetzung aufgelistet wird).

    Befehle:

    • current() //Zeigt auf das aktuelle Element, also das Feld, auf den der Zeiger verweist.
    • prev() //Setzt den Zeiger um eine Position der internen Ordnung zurück.
    • next() //Analog zu prev() wird der Zeiger auf das Feld hinter dem aktuelle Element gesetzt.
    • reset() //Setzt den Zeiger zurück auf das erste Element.
    • end() //Der Zeiger wird auf das letzte Feld des Arrays gesetzt.

    Sofern die Struktur des Arrays nicht durch Hinzufügen oder Löschen von Elementen verändern wird, zeigen reset() und
    end() also immer auf dieselben Elemente. Die anderen drei Befehle rücken bei jedem Aufruf von prev() oder next()
    immer eine Position in die entsprechende Richtung weiter. An den >>Rankdbezeichen<< können zwei Befehle, etwa
    next() und end(), also auf desselbe Element zeigen. Ist kein voriges bzw. weiteres Element mehr vorhanden, geben
    next() bzw. prev() statt ein Elements false zurück.

    Fortsetzung folgt!

    2 Mal editiert, zuletzt von Prof. PHP (2. Februar 2014 um 21:42)

  • bist ja ein blitz forscher der sich mit php gut auskennt

    Spoiler anzeigen

    mal ehrlich welcher vollspassten weiß nicht was arrays sind sowohl in php oder auch in anderen objektorientierten programmiersprachen

  • bist ja ein blitz forscher der sich mit php gut auskennt

    Spoiler anzeigen

    mal ehrlich welcher vollspassten weiß nicht was arrays sind sowohl in php oder auch in anderen objektorientierten programmiersprachen

    Unqualifizierter Beitrag. Bitte höre auf, einen auf ultra Programmierpro zu machen.

    ----------

    Schöner Infothread über Arrays. Kannst soetwas ziemlich gut erklären.


    :!: FileXs #Lieblingsmod. :!:
    ... still making kids cry since 2015.

  • bist ja ein blitz forscher der sich mit php gut auskennt

    Spoiler anzeigen

    mal ehrlich welcher vollspassten weiß nicht was arrays sind sowohl in php oder auch in anderen objektorientierten programmiersprachen

    Mal ehrlich, bist Du wirklich so dumm?
    Es gibt Leute die sich gar und ja gar nicht in Ihrem Leben mit Programmiersprachen auseinandergesetzt haben.
    Aapoh: Na ja, die Langeweile tut halt was sie kann. :aws:

    Einmal editiert, zuletzt von Prof. PHP (2. Februar 2014 um 20:53)

  • bist ja ein blitz forscher der sich mit php gut auskennt

    Spoiler anzeigen

    mal ehrlich welcher vollspassten weiß nicht was arrays sind sowohl in php oder auch in anderen objektorientierten programmiersprachen

    Wenn du so schlau bist was machst du dann hier?
    Im gegensatz zu dir will er etwas von seinem Wissen
    abgeben und nicht sinnlos so tun als ob er der größte
    Programmierer der Welt währe und alle leute die nicht so
    gut sind wie er vollspasten sind.

    b2t schön erklärt weiter so!

  • Gut gemacht, jedoch sollte man erst mal die
    Grundstrukturen von PHP lernen bevor man
    mit den Arrays beginnt.

    Wenn du PHP kannst, mach doch ein Anfänger-Tutorial
    für die, die es lernen wollen :)

    -Sampo

    Sampo:
    Arrays sind total easy und gehören meiner Meinung nach schon fast zum Anfang, da eigentlich nur ein neuer Befehl nach der variable hinzugefügt wird und der Aufbau minimal verändert ist. Statt einen einzigen " " " setzen wir noch Klammern. Ich denke mir folgenden Aufbau immer dazu :

    ( = Script Anfang
    " = Variable Anfang
    "² = Variable Ende
    ) = Script Ende

    Solch eine Methode benutze ich auch bei if Abfragen in den if Abfragen.

  • bennius.:

    Aber die Arrays nützen nicht's wenn man komplett neu mit PHP
    anfängt. Wenn man nichtmal weiß wie man den Anfang macht
    und wie man ein PHP Script beendet :)

    -Sampo

    Wenn du so denkst dann ist das natürlich klar das es nichts bringt, dass derjenige sofort mit Arrays anfängt. Aber sobald man sich ein Tutorial angeschaut hat und derjenige zumindest weiß wie man ein Script anfängt und beendet und sowohl auch mit variablen umgehen kann, kann meiner Meinung nach auch schon mit arrays anfangen.

  • Unqualifizierter Beitrag. Bitte höre auf, einen auf ultra Programmierpro zu machen.

    ----------

    Schöner Infothread über Arrays. Kannst soetwas ziemlich gut erklären.

    schatzi denkst du wirklich er hat es selbst verfasst ?
    und die den beitrag geliked haben haha ihr neider

  • Wenn du so schlau bist was machst du dann hier?
    Im gegensatz zu dir will er etwas von seinem Wissen
    abgeben und nicht sinnlos so tun als ob er der größte
    Programmierer der Welt währe und alle leute die nicht so
    gut sind wie er vollspasten sind.

    b2t schön erklärt weiter so!

    lf er hat das Tutorial von einem E-BOOK kopiert siehe


    Schön kopiert du Opfer :)

    Automatische Weiterleitung

    von wegem "Wissen" :pinch:

    ja ich bin schlau und mache hier was jeder andere hier tut und zwar rum glotzen und tee trinken

    Einmal editiert, zuletzt von .NET (3. Februar 2014 um 18:44)

  • lf er hat das Tutorial von einem E-BOOK kopiert siehe

    von wegem "Wissen" denkst du wirklich DoktorMed alias DoctorX kann was :pinch:

    ja ich bin schlau und mache hier was jeder andere hier tut und zwar rum glotzen und tee trinken

    DokctorX? Wie wärs man mit Hirn nutzen? Nur weil er ein Doktor in seinem Namen hat ist er nicht DoctorX oder?
    DoktorMed ist meikel, danke.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!