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

PHP如何将一维扁平数组偶数位为键奇数位为值生成关联数组

问题原因

你当前代码的问题出在array_map的调用逻辑上:array_map会遍历$rinfo的每一个单个元素传入回调,此时回调拿到的$v是类似22、3这种单值字符串,你写的$v[0]实际是取字符串的第0位字符,$v[1]是取字符串的第1位字符,完全不符合「按奇偶索引成对取值」的预期,因此输出错误。

修正代码(支持同键值累加)

你可以直接用步长为2的循环实现需求,同时自动完成同键名的分数求和:

$rank = $_POST['ranking_details'];
$rinfo = explode('_', $rank);
$result = [];

// 步长为2遍历,偶数位为键,相邻奇数位为值
for ($i = 0; $i < count($rinfo); $i += 2) {
    $key = $rinfo[$i];
    $value = isset($rinfo[$i+1]) ? intval($rinfo[$i+1]) : 0;
    // 同键名自动累加
    $result[$key] = isset($result[$key]) ? $result[$key] + $value : $value;
}

print_r($result);

输出效果

针对你给出的示例原始数组,运行后输出结果为:

Array
(
    [22] => 6
    [27] => 2
    [30] => 1
    [25] => 2
    [28] => 1
)

完全符合你需要的关联数组结构,且自动完成了重复键22的分数求和。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:54:06