You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP的array_key_first输出键'a'及值1?解析实现有效性

PHP array_key_first用法的原理与合法性解释

问题背景

PHP官方手册里array_key_first函数的示例代码是这样的:

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

var_dump($firstKey);
?>

输出结果是:

string(1) "a"

我想要输出键a和对应的值1,拼成a1,自己写出了下面的代码,但不知道它为啥能跑,也不确定这么写合不合法,想搞清楚原理:

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

echo array_key_first($array);
echo $array[array_key_first($array)];
?>

在PHP 8.1.10里运行结果确实是a1。

原理和合法性说明

  • array_key_first是什么:这是PHP 7.3之后官方推出的函数,专门用来获取数组的第一个键名,属于合法的官方API,比以前用reset()加key()的老写法更直接可靠。
  • 你的代码生效逻辑:
    1. 第一次echo array_key_first($array):调用函数返回数组第一个键a,直接输出这个字符串。
    2. 第二次echo $array[array_key_first($array)]:再次调用函数拿到a,用这个键作为索引去数组中取值,得到1后输出。
    3. 两次echo是连续输出的,所以a和1会拼接成a1。
  • 写法完全合法:PHP允许在表达式中直接调用函数,比如把array_key_first的返回值当作数组索引,这完全符合语法规范,没有任何问题。唯一需要注意的是,你的PHP版本必须是7.3及以上,不然这个函数会报错。
  • 小优化建议:你已经把第一个键存在$firstKey变量里了,完全可以复用这个变量,减少一次函数调用,代码更高效:
    echo $firstKey;
    echo $array[$firstKey];
    
    这样只调用一次array_key_first,性能更好,代码也更清爽。

内容的提问来源于stack exchange,提问作者ImAlways_Confused

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:22:03