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

PHP如何将数组中调用的函数返回值直接合并为数组的键值对?

实现PHP数组直接合并函数返回的键值对

你遇到的问题是因为直接在数组里调用返回数组的函数时,PHP会把这个返回的数组当作当前数组的一个子元素,而非合并它的键值对。下面给你两种实用的解决办法:

方法1:使用数组展开运算符(PHP 7.4+)

这是最简洁直观的方案,利用PHP 7.4引入的数组展开语法,直接把函数返回的数组元素拆解开合并到目标数组中:

$data = ['name' => 'John', ...getSurname()];
print_r($data);

function getSurname() {
    return ['surname' => 'Doe'];
}

运行后就能得到你期望的输出:

Array ( [name] => John [surname] => Doe )

方法2:使用array_merge()函数(兼容低版本PHP)

如果你的PHP版本低于7.4,不支持展开运算符,那就用array_merge()来合并两个数组:

$data = array_merge(['name' => 'John'], getSurname());
print_r($data);

function getSurname() {
    return ['surname' => 'Doe'];
}

这个方法兼容性拉满,原理就是将原数组和函数返回的数组合并成一个新数组,自然就把键值对整合到一起了。

原代码问题解析

你原来的写法['name' => 'John', getSurname()]中,PHP会把getSurname()返回的数组当成当前数组的一个数值索引元素,所以才会出现[0] => Array ( ... )的子数组结构,而不是直接合并键值对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:39:08