key

(PHP 4, PHP 5)

keyBir diziden gösterici konumundaki anahtarı döndürür

Açıklama

mixed key ( array &$dizi )

key() işlevi belirtilen diziden göstericinin işaret ettiği elemanın anahtarını döndürür.

Değiştirgeler

dizi

Anahtarın alınacağı dizi.

Dönen Değerler

Dahili göstericinin üzerinde bulunduğu elemanın anahtarını döndürür. Eğer gösterici son elemandan sonrasını gösteriyorsa NULL döner.

Örnekler

Örnek 1 - key() örneği

<?php
$dizi 
= array(
    
'meyve1' => 'elma',
    
'meyve2' => 'muz',
    
'meyve3' => 'armut',
    
'meyve4' => 'elma',
    
'meyve5' => 'elma');

// Değeri "elma" olan tüm anahtarları gösterir
while ($meyve_adı current($dizi)) {
    if (
$meyve_adı == 'elma') {
        echo 
key($dizi).'<br />';
    }
    
next($dizi);
}
?>

Yukarıdaki örneğin çıktısı:

meyve1<br />
meyve4<br />
meyve5<br />

Ayrıca Bakınız

  • current() - Bir diziden gösterici konumundaki elemanı döndürür
  • next() - Dahili dizi göstericisini bir ilerletir

add a note add a note

User Contributed Notes 5 notes

up
12
vinob44 at gmail dot com
5 months ago
Suppose if the array values are in numbers and numbers contains `0` then the loop will be terminated. To overcome this you can user like this

<?php
$array
= array(
   
'0' => '5',
   
'1' => '2',
   
'2' => '0',
   
'3' => '3',
   
'4' => '1');

// wrong approach

while ($fruit_name = current($array)) {

        echo
key($array).'<br />';
      
next($array);
}

// the way will be break loop when arra('2'=>0) because its value is '0', while(0) will terminate the loop

// correct approach
while ( ($fruit_name = current($array)) !== FALSE ) {

        echo
key($array).'<br />';
      
next($array);
}
//this will work properly
?>
up
9
FatBat
2 years ago
Needed to get the index of the max/highest value in an assoc array.
max() only returned the value, no index, so I did this instead.

<?php
reset
($x);   // optional.
arsort($x);
$key_of_max = key($x);   // returns the index.
?>
up
-2
yarco dot w at gmail dot com
6 years ago
Re: br_joris[at]hotmail[doth]com

Do you really mean you want 2 keys point to 1 value?
What you've written seems you want 1 key point to 2 values.

But if you really want 2 keys point to 1 value, you could do the following:

<?php
$buf
['key1'] = 'abc';
$buf['key2'] = & $buf['key1'];
?>
up
-11
goker.cebeci
2 years ago
object usage:

<?php

$object
= new stdClass();
$object->child->key = 'value';

echo
key((array) $object->child);
// key

?>
up
-11
michael
5 years ago
Here is an improved version of the KeyName function below. It is simpler and faster, especially on large arrays as it runs in O(1) instead of O(n).

<?php
function KeyName(array $a, $pos) {
   
$temp = array_slice($a, $pos, 1, true);
    return
key($temp);
}
?>

Also, KeyName($a, -1) will return the last key, etc.
To Top