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
相关产品推荐
相关产品推荐

