PHP key() 函数
最后修改于 2025 年 3 月 13 日
PHP 的 key
函数用于获取当前数组元素的键。它是 PHP 数组指针函数的一部分,与内部指针协同工作。
基本定义
key
函数返回由内部数组指针当前指向的元素键。它不会移动指针。
语法: key(array $array): mixed
。返回当前键,如果指针超出数组边界则返回 null。适用于索引数组和关联数组。
基本的 key() 示例
这演示了如何从简单的关联数组中获取当前键。
basic_key.php
<?php $colors = [ 'red' => '#FF0000', 'green' => '#00FF00', 'blue' => '#0000FF' ]; $currentKey = key($colors); echo "Current key: $currentKey";
内部指针从第一个元素开始。key
返回 'red',因为它是第一个元素的键。指针保持不变。
在循环中使用 key()
将 key
与 next
结合使用来遍历键。
key_in_loop.php
<?php $fruits = [ 'apple' => 'red', 'banana' => 'yellow', 'grape' => 'purple' ]; while ($key = key($fruits)) { echo "Key: $key, Value: {$fruits[$key]}\n"; next($fruits); }
这将打印所有键值对。key
获取当前键,而 next
移动指针。当 key() 返回 null 时循环停止。
key() 与索引数组
key
与数字索引一样处理,就像处理关联键一样。
indexed_array.php
<?php $numbers = [10, 20, 30, 40]; echo "First key: " . key($numbers) . "\n"; next($numbers); echo "Second key: " . key($numbers);
对于索引数组,key
返回数字索引。在此示例中,在调用 next
后,它会移至下一个索引 (1)。
key() 在数组修改后
数组修改会影响内部指针的位置。
modified_array.php
<?php $data = [ 'a' => 1, 'b' => 2, 'c' => 3 ]; next($data); // Move to 'b' unset($data['b']); // Remove current element echo "Current key after removal: " . key($data);
当删除当前元素时,PHP 会将指针移至下一个元素。此处,在删除 'b' 后,指针移至 'c',然后 key
返回 'c'。
key() 与空数组
当在空数组上使用或指针位于数组末尾时,key
返回 null。
empty_array.php
<?php $empty = []; $end = ['a', 'b']; end($end); // Move past last element var_dump(key($empty)); var_dump(key($end));
对于空数组或指针超出数组边界时,key
返回 null。此行为有助于检测何时应停止迭代。
最佳实践
- 重置指针: 在迭代前使用
reset
。 - 检查有效性: 验证返回值不是 null。
- 组合函数: 与
current
配对使用。 - 避免修改: 避免在迭代期间修改数组。
来源
本教程通过实际示例介绍了 PHP key
函数,展示了其在数组键检索场景中的用法。
作者
列出 所有 PHP 数组函数。