Alle Schlüssel eines Arrays ermitteln (Thema: PHP Beispiele)

Wie in PHP alle Schlüssel eines Arrays ausgelesen werden können

1. array_keys()

Vorgesehen zum Ermitteln aller Schlüssel eines Arrays ist die Funktion array_keys($array). Diese wird auf ein Array $array angewendet und gibt wiederum ein Array zurück, dessen Schlüssel von 0 bis n durchnummeriert sind (0, 1, 2, 3, ...) und deren Werte den Schlüsseln von $array entsprechen. Die Reihenfolge der Schlüssel im Ergebnisarray ist identisch zu der in $array.

PHP-Code
<?php
	$arr = array('a'=>1, 'b'=>2, 'c'=>3);
	$keys = array_keys($arr);
	print_r($keys);
?>

HTML-Code
Array
(
    [0] => a
    [1] => b
    [2] => c
)


2. foreach-Schleife

Wer mehr Flexibilität benötigt, kann auf eine simple foreach-Schleife zurückgreifen und mit jeder Iteration einen Wert zum gewünschten Ergebnisarray hinzufügen. Im nachfolgenden Beispiel werden etwa nur solche Schlüssel beachtet, die Strings sind:

PHP-Code
<?php
	$arr = array('a'=>1, 'b'=>2, 'c'=>3, 111=>4);
	$keys = array();
	foreach ($arr as $key=>$val) {
		if (is_string($key)) {
			$keys[] = $key;
		}
	}
	print_r($keys);
?>

HTML-Code
Array
(
    [0] => a
    [1] => b
    [2] => c
)


3. Prüfen, ob bestimmter Schlüssel existiert

Soll nur überprüft werden, ob ein bestimmter Schlüssel im Array existiert oder nicht, dann kann die Funktion array_key_exists($schluessel, $array) verwendet werden. Ist $array[$schluessel] gesetzt, dann wird true zurückgegeben, sonst false.

PHP-Code
<?php
	$arr = array('a'=>1, 'b'=>2, 'c'=>3);
	var_dump( array_key_exists('a', $arr) );
	var_dump( array_key_exists('x', $arr) );
?>

HTML-Code
bool(true)
bool(false)


4. Erster/Letzter Schlüssel

Wer nicht am Array mit allen Schlüsseln interessiert ist, sondern nur am ersten und letzten Schlüssel, der kann diese leicht aus dem Ergebnis von array_keys() auslesen. Der erste Schlüssel hat in diesem Ergebnisarray den Index 0, der letzte den Index count($ergebnisarray)-1. (Der letzte ist also von der Anzahl aller Schlüssel abhängig, welche wiederum über count() bestimmt werden muss.)

PHP-Code
<?php
	$arr = array('a'=>1, 'b'=>2, 'c'=>3);
	$keys = array_keys($arr);
	$first = (!empty($keys) ? $keys[0] : null); // erster Schluessel, NULL falls Array leer ist
	$last = (!empty($keys) ? $keys[count($keys)-1] : null); // letzter Schluessel, NULL falls Array leer ist
	var_dump($first); 
	var_dump($last);
?>

HTML-Code
string(1) "a"
string(1) "c"


Alternativ können auch die Funktionen reset($array), end($array) und key($array) verwendet werden. Über reset($array) springt man an den Anfang von $array, über end($array) zum letzten Element. Mit key($array) wird wiederum der Schlüssel desjenigen Elements bestimmt, auf den der Array-Pointer gerade zeigt. (Ist das Array leer, dann gibt key($array) NULL zurück.)

PHP-Code
<?php
	$arr = array('a'=>1, 'b'=>2, 'c'=>3);
	reset($arr); // Zeiger auf den Anfang setzen
	$first = key($arr);
	end($arr); // Zeiger auf das Ende setzen
	$last = key($arr);
	var_dump($first); 
	var_dump($last);
?>

HTML-Code
string(1) "a"
string(1) "c"


5. Alle Schlüssel eines mehrdimensionalen Arrays ermitteln

Für ein mehrdimensionales array_keys() wird am besten array_walk_recursive($array, $callback) verwendet. Diese Funktion wendet $callback auf alle Elemente in $array an. Es muss nur bei jeder Iteration der aktuelle Schlüssel in ein weiteres Array (hier: $keys) geschrieben werden.

PHP-Code
<?php
	$arr = array('a'=>1, 'b'=>2, 'c'=>array('d'=>3, 'e'=>4));
	$keys = array();
	array_walk_recursive($arr, function($val, $key) use (&$keys) {
		$keys[] = $key;
	});
	print_r($keys);
?>

HTML-Code
Array
(
    [0] => a
    [1] => b
    [2] => d
    [3] => e
)


Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung. OK