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

PHP实现:按字符串数组重复项对数值数组对应值求和

解决方案:将关联数组拆分为两个对应顺序的索引数组

你已经完成了最核心的一步——通过遍历把重复标签对应的数值求和,得到了正确的关联数组结果!接下来要把这个关联数组拆成两个独立的索引数组,只需要借助PHP的array_keys()和array_values()两个内置函数就能轻松实现,而且完全能保持你需要的一一对应顺序。

完整代码示例

// 修正数组长度(和你的示例保持一致)
$records_array = array("Coding", "Web development - Coding", "Meeting", "Coding", "Coding", "Content", "Coding", "Coding");
$quantities_array = array(3, 8, 1, 4.85, 1, 0.5, 6.01, 7);

$new_array = array();
foreach ($records_array as $record_position => $new_array_key) {
    // 初始化键避免Undefined index警告
    if (!isset($new_array[$new_array_key])) {
        $new_array[$new_array_key] = 0;
    }
    $new_array[$new_array_key] += $quantities_array[$record_position];
}

// 拆分关联数组为两个目标数组
$dataCalcGraph = array_keys($new_array); // 去重后的标签数组
$dataLabelGraph = array_values($new_array); // 对应求和后的数值数组

// 验证结果
var_dump($dataCalcGraph);
var_dump($dataLabelGraph);

代码说明

  • array_keys($new_array):提取关联数组的所有键,也就是你需要的去重后的字符串标签数组,顺序和你遍历插入关联数组的顺序完全一致,完美匹配你要求的一一对应规则;
  • array_values($new_array):提取关联数组的所有值,也就是求和后的数值数组,顺序和array_keys()返回的标签数组严格对应;
  • 额外添加的isset()判断,能避免第一次给未初始化的键赋值时出现Undefined index警告,让代码更健壮。

运行结果

执行后你会得到完全符合预期的两个数组:

  • $dataCalcGraph: array("Coding", "Web development - Coding", "Meeting", "Content")
  • $dataLabelGraph: array(21.86, 8, 1, 0.5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 17:22:59