kills Geschrieben 29. November 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 29. November 2006 Teilen 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] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 29. November 2006 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 29. November 2006 Autor Teilen Geschrieben 29. November 2006 Ich danke euch! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 29. November 2006 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DirkHo Geschrieben 29. November 2006 Teilen 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mephistoathell Geschrieben 29. Januar 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.