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

PHP多数组关联生成指定格式CSV文件技术求助

解决方案

原来的代码直接按数组索引匹配内容,但新SKU数组的元素和原数组的索引完全不对应(比如前两个新SKU都属于原第一个SKU的衍生项),核心问题是要通过提取新SKU的基础前缀来关联原数组的标题和描述。下面是具体的实现方案:

// 第一步:先构建原SKU到标题、描述的映射表,方便快速查找
$skuMapping = [];
foreach ($array_sku as $index => $baseSku) {
    $skuMapping[$baseSku] = [
        'title' => $array_Title[$index],
        'description' => $array_Description[$index]
    ];
}

// 第二步:处理新SKU数组,生成目标数据
$prods = [];
foreach ($array_sku_new as $newSku) {
    // 提取基础SKU部分:用'-'分割,只分一次(避免多后缀SKU拆分错误)
    $parts = explode('-', $newSku, 2);
    $baseSku = $parts[0];
    
    // 从映射表获取对应内容,找不到时设置默认值避免报错
    $title = $skuMapping[$baseSku]['title'] ?? '未知标题';
    $description = $skuMapping[$baseSku]['description'] ?? '未知描述';
    
    $prods[] = [
        'SKU' => $newSku,
        'TITLE' => $title,
        'DESCRIPTION' => $description
    ];
}

关键细节说明

  • 映射表构建:把原SKU作为键,对应的标题和描述作为值存入数组,后续查找内容的时间复杂度是O(1),比每次遍历原数组高效很多。
  • 基础SKU提取:explode('-', $newSku, 2)的第三个参数2确保只拆分一次,哪怕遇到first-A-B这种带多个后缀的SKU,也能正确提取基础部分first。
  • 容错处理:用PHP7+的空合并运算符??处理基础SKU不存在的情况,你可以根据业务需求调整默认值(比如设为空字符串)。

处理后$prods数组会正确关联所有衍生SKU与原内容:

  • first-A/first-B → 对应原first的标题和描述
  • second-VG/second-RT/second-C → 对应原second的标题和描述
  • third → 直接对应原third的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:58:14