PHP Velho Oeste 2024

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

array_key_existsPrüft, ob ein gegebener Schlüssel in einem Array existiert

Beschreibung

array_key_exists(string|int|float|bool|resource|null $key, array $array): bool

array_key_exists() gibt true zurück, wenn key im Array vorhanden ist. key kann jeder für einen Array-Index mögliche Wert sein.

Parameter-Liste

key

Der zu prüfende Wert.

array

Ein Array mit den zu prüfenden Schlüsseln.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Hinweis:

array_key_exists() sucht nur in der ersten Dimension nach Schlüsseln. Verschachtelte Schlüssel in mehrdimensionalen Arrays werden nicht gesucht.

Changelog

Version Beschreibung
8.0.0 Der Parameter key akzeptiert nun Werte vom Typ bool, float, int, null, resource und string als Argument.

Beispiele

Beispiel #1 array_key_exists()-Beispiel

<?php
$search_array
= array('erstes' => 1, 'zweites' => 4);
if (
array_key_exists('erstes', $search_array)) {
echo
"Das Element 'erstes' ist im Array vorhanden";
}
?>

Beispiel #2 array_key_exists() vs. isset()

isset() gibt für Schlüssel eines Arrays, die zu einem null-Wert gehören, nicht true zurück, während array_key_exists() dies tut.

<?php
$search_array
= array('erstes' => null, 'zweites' => 4);

// Gibt false zurück
isset($search_array['erstes']);

// Gibt true zurück
array_key_exists('erstes', $search_array);
?>

Anmerkungen

Hinweis:

Aus Gründen der Abwärtskompatibilität gibt array_key_exists() auch dann true zurück, wenn key eine Eigenschaft ist, die in einem Objekt definiert ist, das als array übergeben wurde. Dieses Verhalten ist seit PHP 7.4.0 veraltet und seit PHP 8.0.0 entfernt.

Um zu prüfen, ob eine Eigenschaft in einem Objekt existiert, sollte property_exists() verwendet werden.

Siehe auch

  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • array_keys() - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
  • in_array() - Prüft, ob ein Wert in einem Array existiert
  • property_exists() - Prüft, ein Objekt oder eine Klasse auf die angegebene Eigenschaft

add a note

User Contributed Notes 3 notes

up
12
Julian
11 months ago
When you want to check multiple array keys:

<?php

$array
= [];
$array['a'] = '';
$array['b'] = '';
$array['c'] = '';
$array['d'] = '';
$array['e'] = '';

// all given keys a,b,c exists in the supplied array
var_dump(array_keys_exists(['a','b','c'], $array)); // bool(true)

function array_keys_exists(array $keys, array $array): bool
{
$diff = array_diff_key(array_flip($keys), $array);
return
count($diff) === 0;
}
up
4
Rumour
7 months ago
In PHP7+ to find if a value is set in a multidimensional array with a fixed number of dimensions, simply use the Null Coalescing Operator: ??

So for a three dimensional array where you are not sure about any of the keys actually existing

<?php

// instead of:
$exists = array_key_exists($key1, $arr) && array_key_exists($key2, $arr[$key1]) && array_key_exists($key3, $arr[$key1][$key2]) ;

// use:
$exists = array_key_exists($key3, $arr[$key1][$key2]??[]) ;

?>
up
-41
manhon824 at gmail dot com
12 years ago
I took hours for me to debug, and I finally recognized that,

You have to reset the $array before using array_key_exists
reset($array);
array_key_exists($needle,$array);

Or you will get no reply.
To Top