Ok, ich zerlege dann mal meinen Code, und schreibe ihn in eine Funktion, damit es übersichtlicher wird:
PHP:
function delete_array_element ($delete_id,$array)
{
unset($array[$delete_id]);
$tempstring = implode(chr(255), $array);
$array = explode(chr(255), $tempstring);
return $array;
}
Also, der Funktion wird nachwievor das Array und der Index des zu löschenden Eintrags übergeben.
Zuerst wird genau dieser Eintrag per unset gelöscht.
Dann wird das Array mit implode in eine Zeichenkette zerlegt. implode macht dabei folgendes: Es nimmt alle Einträge aus dem Array und schreibt sie nacheinander in die Zeichenkette. Als Abgrenzung wird dazwischen jeweils der String gesetzt, den man implode als ersten Parameter übergibt. Kleines Beispiel:
PHP:
$array[0] = "Hans"; $array[1] = "Peter"; $array[2] = "Franz";
echo implode(" | ", $array);
Dieses Script würde dann "Hans | Peter | Franz" ausgeben.
Das praktische bei implode ist aber, dass es leere Einträge im Array gleich weglässt. Hätte man also vor dem implode im obigen Beispiel ein unset($array[1]); gesetzt, wäre die Ausgabe "Hans | Franz" gewesen.
Diesen String, der ja nun alle ursprünglichen Einträge des Arrays außer dem, der gelöscht werden soll, enthält, muss man jetzt nur noch in ein Array zurückverwandeln. Genau das übernimmt das Gegenstück zu implode, nämlich explode. Dieser Funktion übergibt man das Trennzeichen und die Zeichenkette, die in ein Array umgewandelt werden soll.
Und voilá - schon hat man einen Eintrag im Array gelöscht
Ich hoffe, dass das einigermaßen verständlich war
Wenn nicht - einfach nochmal nachfragen
reima