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

是否存在可通过回调函数获取键来索引数组的PHP内置函数?

PHP是否存在对应功能的内置函数

PHP目前(截至PHP 8.3版本)没有单独的内置函数可以直接实现你描述的「传入数组和键生成回调、返回以回调结果为键的关联数组」需求,你自己写的array_index实现就是最优的原生实现方案。

可选的原生函数组合替代方案

你可以用array_combine+array_map组合实现类似效果,代码如下:

$result = array_combine(
    array_map($getKey, $values),
    $values
);

该方案存在两个明显缺陷:

  • 性能不如自定义实现:需要先遍历数组生成键数组,再遍历第二次完成数组合并,大数据量下性能差距更明显
  • 异常行为不符合预期:如果回调返回了重复的键,array_combine会直接抛出警告并终止执行,而自定义的foreach实现会默认用后出现的元素覆盖先出现的同键元素,行为可预期

补充说明

部分PHP框架已经内置了该功能的封装,比如Laravel框架的集合类提供的keyBy()方法,逻辑和你写的自定义函数完全一致,但属于框架实现,不属于PHP原生能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:54:03