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

如何将扁平关联数组转换为含关联行的索引二维数组?

解决PHP关联数组转索引数组并保留原键的问题

你的需求是将关联数组的键转为连续数字索引,同时把原键存入子数组的code字段,原对应值存入name字段。你当前的array_map代码只返回了原键,没有完成值和键的组合,下面是两种可行的实现方式:

方法一:使用array_map完成转换

利用array_map可同时接收原数组和原数组键数组的特性,在回调函数里构造目标子数组:

$originalArray = [
    123456 => 'John Doe',
    654321 => 'Doe John'
];

$convertedArray = array_map(function ($value, $key) {
    return [
        'name' => $value,
        'code' => $key
    ];
}, $originalArray, array_keys($originalArray));

print_r($convertedArray);

这段代码中,array_map会遍历$originalArray的每个值和array_keys($originalArray)的每个键,回调函数将它们组合成包含name和code的子数组,最终生成连续数字索引的数组。

方法二:使用foreach循环(更直观)

如果觉得array_map的逻辑不够直观,用foreach循环逐个处理也很清晰:

$originalArray = [
    123456 => 'John Doe',
    654321 => 'Doe John'
];

$convertedArray = [];
foreach ($originalArray as $code => $name) {
    $convertedArray[] = [
        'name' => $name,
        'code' => $code
    ];
}

print_r($convertedArray);

循环过程中,每次将当前键赋值给$code,值赋值给$name,然后构造子数组添加到新数组中,自动生成连续数字索引。

两种方法都能得到你预期的结果:

Array
(
    [0] => Array
        (
            [name] => John Doe
            [code] => 123456
        )

    [1] => Array
        (
            [name] => Doe John
            [code] => 654321
        )

)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:15:35