PHP 8.3.4 Released!

array_key_exists

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

array_key_existsBelirtilen anahtar veya indis dizide var mı diye bakar

Açıklama

array_key_exists(string|int $anahtar, array $dizi): bool

array_key_exists() işlevi anahtar dizide varsa true döndürür. anahtar yerine bir indis de belirtilebilir.

Bağımsız Değişkenler

anahtar

Aranacak anahtar veya indis.

dizi

Anahtarın aranacağı dizi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Bilginize:

array_key_exists() anahtarları yalnızca ilk boyutta arar. Çok boyutlu dizilerdeki iç içe anahtarlara bakılmayacaktır.

Örnekler

Örnek 1 - array_key_exists() örneği

<?php
$dizi
= array('ilk' => 1, 'ikinci' => 4);
if (
array_key_exists('ilk', $dizi)) {
echo
"'ilk' elememanı dizide mevcut";
}
?>

Örnek 2 - array_key_exists() işlevine karşı isset()

isset() işlevi null değerli dizi anahtarları için true döndürmez ama array_key_exists() döndürür.

<?php
$dizi
= array('ilk' => null, 'ikinci' => 4);

// false döner
isset($dizi['ilk']);

// true döner
array_key_exists('ilk', $dizi);
?>

Notlar

Bilginize:

Geriye uyumluluk adına, array_key_exists() işlevi anahtar bağımsız değişkeninin dizi olarak beliritlen bir object içinde tanımlanmış bir özellik olması durumunda da true döndürür. Bu davranışın kullanımı PHP 7.4.0 itibariyle önerilmemekte olup PHP 8.0.0 sürümünde kaldırılmıştır.

Bir nesne içinde bir özelliğin bulunup bulunmadığını sınamak için property_exists() işlevi kullanılmalıdır.

Ayrıca Bakınız

  • isset() - Değişken bildirilmiş ve null değil mi diye bakar
  • array_keys() - Bir dizideki tüm anahtarları veya bir anahtar altkümesini döndürür
  • in_array() - Bir dizide bir değerin varlığını araştırır
  • property_exists() - Bir nesne veya sınıfın belirtilen özelliğe sahip olup olmadığına bakar

add a note

User Contributed Notes 3 notes

up
12
Julian
1 year 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
8 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