Kosmos: Wie geht $array[$i..$j] in PHP?

Hallo,
ich habe ein Array, mit einer variablen Anzahl von Keys, maximal aber 128.
Die Variable $i liegt im Zahlenbereich 1-128, wobei sichergestellt ist, dass das Array mehr Einträge halt, als der Wert der Variable $i.
$j ist $i+4;

So, jetzt möchte ich folgendes machen:

$z=implode("<br>", $array[$i..$j]);

Was das bezwecken soll: Die Variable $z soll Unter Verwendung von "<br>" Die zusammengeführten Werte von $array erhalten, allerdings NUR die Werte des Arrays $array[i], $array[i+1], array[i+2], array[i+3] und array[i+4].

Wie geht das??

Vielen Dank,
Kosmos

  1. Hello,

    $j ist $i+4;

    So, jetzt möchte ich folgendes machen:

    $z=implode("<br>", $array[$i..$j]);

    Was das bezwecken soll: Die Variable $z soll Unter Verwendung von "<br>" Die zusammengeführten Werte von $array erhalten, allerdings NUR die Werte des Arrays $array[i], $array[i+1], array[i+2], array[i+3] und array[i+4].

    Es gibt verschíedene Möglichkeiten. dazu solltest Du erst einmla wissen, wie "Arrays" in PHP überhaupt aufgebaut sind:

    <img src="http://bitworks.de/~selfHTML/EinfachesArray500.gif" border="0" alt="">

    Das Array ist eine verkettete Liste von einzelnen Datenstrukturen im Speicher. Jede kennt ihren Vorgänger und ihren Nachfolger. Jede enthält einen Schlüssel und einen Wert und noch ein paar weitere Informationen, die uns nicht interessieren. Der Schlüssel kann numerisch sein oder auch ein Semaphor (String). Die Position in der Kette hat nichts mit dem Schlüssel zu tun. Allerdings kann man die Elemente nach dem Schlüssel in der Kette sortieren lassen.

    Anstelle eines Wertes kann man auch den Zeiger auf ein nächstes Array-Element eintragen. Dadurch entsteht eine Verzweigung. Einen skalaren Wert kann dieses Element dann aber nicht mehr tragen. es dient dann ausschließlich als Knoten oder Dimensionsübergang.

    <img src="http://bitworks.de/~selfHTML/VerzweigtesArray500.gif" border="0" alt="">

    Wenn Du nun sagst, Du möchtest die Elemente

    $_data[$i]
      $_data[$i+1]
      $_data[$i+2]
      $_data[$i+3]

    aus dem Array herauskopieren oder ausschneiden, dann musst Du vorher erstmal genau wissen, ob $i+x die eingetragenen Schlüssel im Array sind, oder ob dadurch die Position in der Kette gekennzeichnet wird.

    Wenn es die eingetragenen Schlüssel sind, musst Du sicher sein, dass diese auch vorhanden sind, bzw. dies abfragen. Dann kassnt Du eine For-Schleife aufbauen, die dir gezielt diese Elemente beschafft.

    Anderenfalls schau Dir mal die Funktionen Array_Slice() und Array_Splice() an, die mit der Position in der Kette arbeiten.

    http://de3.php.net/manual/de/function.array-slice.php
    http://de3.php.net/manual/de/function.array-splice.php

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hi,

      http://de3.php.net/manual/de/function.array-slice.php

      Dankeschön, das habe ich gesucht.

      Gruß,
      Kosmos