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

PHP将索引数组与关联数组组合为带指定二级键的二维数组

实现方案

方案1:foreach 实现(易读易维护,推荐)

可以先将关联数组$test的键、值转为索引数组,同步按索引匹配$colors的项,代码如下:

$final = [];
$testKeys = array_keys($test);
$testValues = array_values($test);

foreach ($colors as $index => $color) {
    // 两个数组长度不一致时自动终止,避免报错
    if (!isset($testKeys[$index]) || !isset($testValues[$index])) {
        break;
    }
    $final[$color] = [
        'name' => $testKeys[$index],
        'value' => $testValues[$index]
    ];
}

方案2:数组函数实现(代码更简洁)

如果确认两个数组长度完全一致,可以用array_map+array_combine组合实现:

$final = array_combine(
    $colors,
    array_map(
        fn($key, $val) => ['name' => $key, 'value' => $val],
        array_keys($test),
        array_values($test)
    )
);

注意事项

两种方案的匹配逻辑都是按数组的内置顺序一一对应:$colors的第N项对应$test遍历的第N个键值对,和键名本身无关。如果你的$test需要指定特定排序,提前用ksort等排序函数处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:54:03