# Eintrag aus Array löschen



## Moartel (29. August 2001)

Ich weiß dass die Frage völlig idiotisch und primitiv ist, aber mir fällt es einfach nimmer ein. Kann man mit (fast) 18 schon Alzheimer haben oder vergisst man alles wenn man so 5 Monate nimmer scriptet?
Mein Problem ist einfach dass ich für ein Skript einen Eintrag aus einem Array löschen muss. Wäre nett wenn ihr mir einfach mal die verschiedenen Möglichkeiten sagt, weil ich nichtgenau weiß ob ich einfach nur den Inhalt des Feldes wissen muss oder seine Indexnummer. Könnte ich aber beides rausfinden.

Da wär noch was: Ich hab bei mir PHP 4.05 installiert und die Funktion array_search() mag ned so recht. Angeblich existiert die ned. Weiß jemand von euch woran das liegen kann?


----------



## Robin (30. August 2001)

puh .. also ich glaube solch eine funktion musst Du dir selber schreiben. Es gibt in PHP4 zwar schon vorgefertigte Funktionen die den letzten/ersten Wert ausgeben und automatisch löschen, aber keine die in der Mitte des Arrays ein Wert ausgibt und löscht.

probiers mal so...

function array_index_delete($array)
{
    $rows=count($array,$index);

    for($i=0;$i<$rows;$i++)
    {
       // Wenn Du den Wert ausgeben willst, so kannst du das hier tun
       if($i==$index)print "$array[$i]";

       $tmp=$i+1;
       if($tmp!=$rows)$array[$i]=$array[$tmp];
    }

    return $array; 
}

// Aufruf
$array=array_index_delete($array,2);

so .. ich hoffe das funktioniert .. hab es nicht getestet 
Da Du ja PHP schon kannst, weißt Du ja hoffentlich was das im einzelnen zu bedeutetn hat 

Wenn Du noch Fragen hast, so meld dich einfach nochmal.

Gruß Robin


----------



## Moartel (30. August 2001)

Ganz ehrlich, ich verstehe nicht ganz was das Skript macht dass du mir da geschrieben hast. Außerdem glaube ich einen kleinen Fehler entdeckt zu haben. Wenn ich Zeit hätte würde ich es mal schnell ausführen. Kann aber auch sein dass es einfach zu früh ist um sich geistig zu betätigen.

Wenn es fertige Funktionen gibt finde ich man sollte sich ihrer bedienen. Wenn es also eine Funktion gibt mit der man einen Eintrag an den Anfang oder das Ende des Array befördern kann, kann man bequem die Funktionen von PHP nutzen und den Eintrag löschen.

Wie heißt die Funktion mit der man das den ersten (oder letzten) Eintrag eines Arrays löschen kann? Bei all den Funktionen die es für Array gibt hab ich die leider nicht gefunden


----------



## Robin (30. August 2001)

hehe


array_pop(); -> Entfernt ein Element am Endes des arrays. Gibt es vorher aus.

array_shift(); -> Entfernt ein Element am Anfang des arrays. Gibt es vorher aus.

Robin


----------



## Moartel (30. August 2001)

thx. Genau das habe ich gebraucht. Der Rest ist viel einfacher zu schreiben und zu handhaben als die anderen Möglichkeiten. Einfach das Element nach vorne oder hinten schieben, rauswerfen, fertig.


----------

