kills Geschrieben 29. November 2006 Geschrieben 29. November 2006 Hi zusammen, ich hab folgendes Array: $arr = array('id','name'); [/PHP] Wie kann ich nun ein neues Element "xyz" an die Stelle des Elements "name" einfügen, sodass "name" danach an der Stelle 2 steht? Ergebnis soll also folgendes sein: [PHP] $arr = array('id','name'); // aufruf irgendeiner Funktion var_dump($arr); // Ausgabe: array(0 => 'id', '1' => 'xyz', '2' => 'name') Danke und Gruß, Markus
geloescht_JesterDay Geschrieben 29. November 2006 Geschrieben 29. November 2006 Wie kann ich nun ein neues Element "xyz" an die Stelle des Elements "name" einfügen, sodass "name" danach an der Stelle 2 steht? Eine eingebaute Funktion ist mir da nicht bekannt, aber: // Fügt $value in $array ein, an der Stelle $index function array_insert($array, $index, $value) { return array_merge(array_slice($array, 0, $index), $value, array_slice($array, $index)); } [/php]
etreu Geschrieben 29. November 2006 Geschrieben 29. November 2006 Wenn es die erste Stelle sein soll, dann kannst du array_unshift() benutzen. Wenn es wahlfrei sein soll, must du dir wohl selbst was einfallen lassen.
kills Geschrieben 29. November 2006 Autor Geschrieben 29. November 2006 Als Hinweis sein hinzugefügt, dass das ganze so nur in PHP 4 Funktioniert. Siehe dazu die Warnungen auf PHP: array_merge - Manual Für PHP5 bzw als Versionsunabhängige Lösung würde das ganze dann nur so gehen: // Fügt $value in $array ein, an der Stelle $index function array_insert($array, $index, $value) { return array_merge(array_slice($array, 0, $index), array($value), array_slice($array, $index)); } [/PHP] Durch diese Änderung können nun auch Arrays als solche hinzugefügt werden, ohne dass nur dessen Elemente eingefügt werden. z.b. [PHP]$arr = array('xyz','www'); $arr = array_insert($arr, 3, array('abc','def')); Gruß, Markus
DirkHo Geschrieben 29. November 2006 Geschrieben 29. November 2006 Hi, hab mal eine Funktion gebaut (ob die besonders effektiv ist weiß ich nicht). Mußt bei Angabe der Position dran denken die reale Position anzugeben ('name' ist in dem Fall in $arr an Position 2 und nicht in Position 1). <?php $arr = array('id', 'name'); function insertIntoArray($name, $pos, $arr) { $length = count($arr); $temp = array(); $a = 0; for($i = 0; $i <= $length; $i++) { if($i == ($pos - 1)) { $temp[$i] = $name; $a++; } $temp[$a] = $arr[$i]; $a++; } return($temp); } $bla = insertIntoArray('test', '2', $arr); ?> [/PHP] CU!
Mephistoathell Geschrieben 29. Januar 2009 Geschrieben 29. Januar 2009 ... aber da ich gerade selber nach einer Lösung für das Problem gesucht habe, dachte ich vielleicht hilft es anderen Suchenden wenn ich hier meine Lösung veröffentliche. Ich benutze die Funktion "array_splice()" Als Parameter einfach: array_splice(ürsprüngliche Array,gewünschte Position,0,gewünschter Wert); fertig! MfG Mephisto
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden