key
(PHP 4, PHP 5, PHP 7, PHP 8)
key — 从关联数组中取得键名
参数
- array
- 
      该数组。 
返回值
   key() 函数返回数组中内部指针指向的当前单元的键名。
   但它不会移动指针。如果内部指针超过了元素列表尾部,或者数组是空的,key() 会返回 null。
  
更新日志
| 版本 | 说明 | 
|---|---|
| 8.1.0 | 弃用在 object 上调用此函数。 要么首先使用 get_mangled_object_vars() 将 object 转换为 array,要么使用实现 Iterator 的类提供的方法,例如 ArrayIterator。 | 
| 7.4.0 | SPL 类的实例现在被视为没有属性的空对象,而不是调用与此函数同名的 Iterator 方法。 | 
示例
示例 #1 key() 例子
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// 此循环将会输出数组中所有值等于 “apple” 的键(key)
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array), "\n";
    }
next($array);
}
?>以上示例会输出:
fruit1 fruit4 fruit5
  +添加备注
  
用户贡献的备注 3 notes
  
  
  lhardie ¶
  
 
  10 years ago
  Note that using key($array) in a foreach loop may have unexpected results.  
When requiring the key inside a foreach loop, you should use:
foreach($array as $key => $value)
I was incorrectly using:
<?php
foreach($array as $value)
{
$mykey = key($array);
}
?>
and experiencing errors (the pointer of the array is already moved to the next item, so instead of getting the key for $value, you will get the key to the next value in the array)
CORRECT:
<?php
foreach($array as $key => $value)
{
$mykey = $key;
}
A noob error, but felt it might help someone else out there.  
  
  vinob44 at gmail dot com ¶
  
 
  11 years 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
?>