Einen Teilabschnitt aus einem Array entfernen (Thema: PHP Beispiele)

Wie man ein oder mehr Elemente aus einem Array mittels array_splice() entfernt

1. Hinweis


Dieser Artikel beschäftigt sich mit dem Löschen von Schlüssel-Wert-Paaren aus einem Array anhand ihrer Position (bzw. Stelle/Offset).
Wie Paare anhand ihres Wertes gelöscht werden (z.B. alle ungeraden Werte löschen) erklärt der Artikel „Bestimmte Werte aus einem Array entfernen”.

2. Einleitung


Zum Entfernen von Werten aus einem Array anhand ihres Offsets wird array_splice(&$array, $offset, $length, $replacement) verwendet, wobei $replacement leer gelassen wird (oder alternativ übergibt man array()).
$offset entspricht der Stelle ab der mit dem „Schneiden” begonnen werden soll.
$length gibt an, wie viele Elemente „ausgeschnitten” werden sollen.
Wird $length leer gelassen, dann wird alles ab $offset entfernt.
Ist $length ein negativer Wert, dann werden alle Elemente ab $offset bis $length Elemente vorm Ende des Arrays entfernt (-1 entspräche etwa „alles von $offset bis zum vorletzten Element”).

3. Alle Elemente vom a-ten bis zum b-ten Element aus einem Array entfernen


PHP-Code
<?php
	$arr = array(10, 20, 30, 40, 50, 60, 70);

	// Das zweite und das dritte Element entfernen
	// Der zweite Parameter der Funktion ist hier 1, da von 0 aus durchnummeriert wird.
	// Der erste Wert im Array hat demnach den Schlüssel 0, der zweite den Schlüssel 1 usw.
	array_splice($arr, 1, 2);
	var_dump($arr);
?>
Ausgabe
array(5) {
  [0]=>
  int(10)
  [1]=>
  int(40)
  [2]=>
  int(50)
  [3]=>
  int(60)
  [4]=>
  int(70)
}

4. Alle Elemente ab dem a-ten Element aus dem Array entfernen


PHP-Code
<?php
	$arr = array(10, 20, 30, 40, 50, 60, 70);

	// Alles ab dem dritten Element entfernen
	array_splice($arr, 2);
	var_dump($arr);
?>
Ausgabe
array(2) {
  [0]=>
  int(10)
  [1]=>
  int(20)
}

5. Das erste Element aus einem Array entfernen


PHP-Code
<?php
	$arr = array(10, 20, 30, 40, 50, 60, 70);

	// Nur das erste Element entfernen
	array_splice($arr, 0, 1);
	var_dump($arr);
?>
Ausgabe
array(6) {
  [0]=>
  int(20)
  [1]=>
  int(30)
  [2]=>
  int(40)
  [3]=>
  int(50)
  [4]=>
  int(60)
  [5]=>
  int(70)
}

wichtig
Das erste Element kann aus einem Array auch entfernt werden, indem ein Mal array_shift() auf das Array angewendet wird.

6. Alle Elemente vom a-ten bis zum vorletzten Element entfernen


PHP-Code
<?php
	$arr = array(10, 20, 30, 40, 50, 60, 70);
	
	// Vom dritten Element bis zum vorletzten Element entfernen, jeweils einschließlich
	array_splice($arr, 2, -1);
	var_dump($arr);
?>
Ausgabe
array(3) {
  [0]=>
  int(10)
  [1]=>
  int(20)
  [2]=>
  int(70)
}

7. Elemente entfernen mit Zählung vom Ende des Arrays aus


PHP-Code
<?php
	$arr = array(10, 20, 30, 40, 50, 60, 70);

	// Alles vom vorvorvorletzten (drittes Element vor dem letzten Element, würde man das
	// Array umdrehen dann stünde es also an vierter Stelle) bis zum vorletzten Element entfernen
	array_splice($arr, count($arr)-1-3, -1); 	// Das erste -1 bedeutet, dass vom Count-Wert zum Offset-Wert
							// umgerechnet wird, da z.B. ein Array mit nur einem Element
							// einen Count-Wert von 1 ergibt, das Element aber den Offset 0 hat.
	var_dump($arr);
?>
Ausgabe
array(4) {
  [0]=>
  int(10)
  [1]=>
  int(20)
  [2]=>
  int(30)
  [3]=>
  int(70)
}

Kommentare (0)

Von neu nach alt