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

如何在PHP中将数组父级键替换为子数组键以实现指定结构转换?

PHP数组转换:将嵌套子数组的键作为父级索引

你遇到的问题是因为array_column()需要指定固定的列名来提取值,但你的每个子数组的键都不相同,所以这个函数不适用。下面是几种可行的解决方法:

方法1:foreach循环遍历合并

这是最直观的方式,遍历原数组的每个子元素,将其键值对合并到结果数组中:

$originalArray = [
    ['for_a' => 'me'],
    ['for_b' => 'you'],
    ['for_c' => 'bleeh'],
];

$result = [];
foreach ($originalArray as $item) {
    $result += $item;
}

print_r($result);

方法2:使用array_reduce函数

通过函数式编程的方式,逐步将子数组合并到初始空数组:

$originalArray = [
    ['for_a' => 'me'],
    ['for_b' => 'you'],
    ['for_c' => 'bleeh'],
];

$result = array_reduce($originalArray, function($carry, $item) {
    return $carry + $item;
}, []);

print_r($result);

方法3:array_merge + 扩展运算符(PHP 5.6+)

这是最简洁的写法,利用扩展运算符将原数组的子数组作为参数传入array_merge():

$originalArray = [
    ['for_a' => 'me'],
    ['for_b' => 'you'],
    ['for_c' => 'bleeh'],
];

$result = array_merge(...$originalArray);

print_r($result);

以上三种方法都能得到你想要的目标数组,其中方法3要求PHP版本在5.6及以上,如果你使用的是较旧版本,推荐用前两种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:12:03