Willkommen in der Webstatt
User-1 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?
xyz-48ke schonmal für alle hilfreichen Antworten.

MfG
xyz-58

netcup.de Warum gibt es hier Werbung?
User-2 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