Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Alle Schlüssel eines Arrays ermitteln

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
)