Webstatt.org - Community seit 2006 - 2012 (2024?)

Arrayelement löschen und den Rest nachrücken lassen

Avatar user-168
30.03.2007 20: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

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-253
30.03.2007 20: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);