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

PHP中将扁平关联数组转换为指定列名的二维数组

在PHP中转换数组结构并合并覆盖已有值

一、基础结构转换

如果只是要把给定的一维键值数组转换成指定的二维数组结构,直接遍历原数组即可:

原数组示例:

$originalArray = [
    1149 => 3,
    4108 => 5
];

转换代码:

$resultArray = [];
foreach ($originalArray as $offerId => $quantity) {
    $resultArray[] = [
        'offer_id' => $offerId,
        'quantity' => $quantity
    ];
}

执行后$resultArray就是你期望的二维数组结构。

二、合并并覆盖已有二维数组

如果已经存在一个目标结构的二维数组,需要将原数组内容合并进去(已有offer_id的更新quantity,没有的新增),可以按以下步骤操作:

假设已有二维数组:

$existingArray = [
    ['offer_id' => 1149, 'quantity' => 2],
    ['offer_id' => 9999, 'quantity' => 10]
];

合并覆盖代码:

// 第一步:把已有数组转成以offer_id为键的临时数组,方便快速匹配
$tempMap = [];
foreach ($existingArray as $item) {
    $tempMap[$item['offer_id']] = $item['quantity'];
}

// 第二步:合并原数组,自动覆盖已有offer_id的quantity值
$tempMap = array_merge($tempMap, $originalArray);

// 第三步:转回目标二维数组结构
$finalArray = [];
foreach ($tempMap as $offerId => $quantity) {
    $finalArray[] = [
        'offer_id' => $offerId,
        'quantity' => $quantity
    ];
}

最终$finalArray会包含:

  • offer_id为1149的条目,quantity被更新为3
  • 保留原有的offer_id为9999的条目
  • 新增offer_id为4108的条目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:10:31