Willkommen in der Webstatt Zum Webstatt Blog und Stories
Dustwolf Dustwolf am 30.03.07 22:05

Moin.

Ich steh gerade auf der Leitung, habe aber auch keine Zeit für eine Pause und frage deswegen jetzt hier mal nach. Wahrscheinlich wird die Antwort zwar vernichtend simpel sein, aber zumindest unset() bringt mich nicht weiter und auch sonst finde ich keine passende Funktion.

<?php

$array[1] = 1;
$array[2] = 2;
$array[3] = 3;

unset($array[2]);

?>


So komme ich leider nicht zu dem Ergebnis, das ich haben möchte. Denn ich möchte quasi Eintrag 2 (im echten Script ist das auch wieder ein Array) entfernen und dann soll entsprechend Eintrag 3 auf Platz 2 vorrücken.

Der Sinn dahinter: Ich möchte verschachtelte Listen erstellen um eine Ebenenstruktur zu erstellen. Das mache ich mit einer rekursiven Funktion. Die Funktion greift auf ein Arrayfeld zu, erstellt daraus einen Listeneintrag und entfernt das Arrayfeld dann. Anschließend soll das verkleinerte Array der Funktion erneut übergeben werden.
Ganz normale Rekursion eben...

Wie kann ich das also funktional umsetzen, dass das Arrayfeld gelöscht wird?
Danke schonmal für alle hilfreichen Antworten.

MfG
Dustwolf

netcup.de Warum gibt es hier Werbung?
Michael Michael am 30.03.07 22:15

Hmm mir fällt keine eingebaute Funktion ein. [dok]array_unshift[/dok] könnte dein Freund sein. Bin mir aber nicht sicher und habe momentan nicht die Zeit nachzuschauen. Ich meine mich aber zu erinnern, dass die Funktion die Indices neu berechnet.

Also beispielsweise


$array[1] = 1;
$array[2] = 2;
$array[3] = 3;

unset($array[2]);
array_unshift(array(),$array);

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt