Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] Array: Element einfügen und bestehende aufrücken

Empfohlene Antworten

Veröffentlicht

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

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]

Ich danke euch!

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

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!

  • 2 Jahre später...

... 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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.