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

如何将PHP二维数组的一级键作为新元素添加到对应二级行中?

如何将PHP二维数组的一级键添加到对应二级数组中?

给定如下PHP二维数组:

$members = [
    'myname' => ['userid' => 52, 'age' => 46],
    'isname' => ['userid' => 22, 'age' => 47],
    'yourname' => ['userid' => 47, 'age' => 85]
];

需要把每个一级键(比如myname)添加到对应的二级数组末尾,最终得到如下结果:

[
    'myname' => ['userid' => 52, 'age' => 46, 0 => 'myname'],
    'isname' => ['userid' => 22, 'age' => 47, 0 => 'isname'],
    'yourname' => ['userid' => 47, 'age' => 85, 0 => 'yourname'],
]

已有一段可行的实现代码:

foreach ($members as $key => $item) {
  array_push($members[$key], $key);
}

除此之外,还可以通过以下几种方式实现需求:


方法1:引用遍历直接修改二级数组

直接引用遍历的二级数组元素,无需通过键名访问原数组,代码更简洁直观:

foreach ($members as $key => &$item) {
    $item[] = $key;
}
unset($item); // 解除引用,避免后续操作意外污染数组

方法2:使用array_map生成新数组

不修改原数组,返回全新的结果数组,适合需要保留原数组的场景:

$newMembers = array_map(function($value, $key) {
    $value[] = $key;
    return $value;
}, $members, array_keys($members));

方法3:手动组装新数组

手动遍历原数组并构建结果,逻辑清晰,便于后续扩展额外处理逻辑:

$newMembers = [];
foreach ($members as $key => $item) {
    $newMembers[$key] = $item + [$key];
}

方法4:用array_walk修改原数组

通过回调函数直接修改原数组的每个元素:

array_walk($members, function(&$item, $key) {
    $item[] = $key;
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:24:57