PHP如何实现多维数组相同索引号的对应值合并
PHP同索引多维数组合并实现
你需要的是把列存储的二维数组转成按行存储的结构,两种常见实现方式如下:
1. 基础循环写法
兼容所有PHP版本,逻辑可控,方便中途加自定义校验逻辑:
// 定义原始数组 $source = [ 'TXN_DATE' => ['21-AUG-21', '22-AUG-21', '23-AUG-21', '24-AUG-21'], 'O_TXN' => [50, 60, 70, 80], 'O_TXN_AMT' => [5000, 6000, 7000, 8000], 'R_TXN' => [20, 30, 40, 85], 'R_TXN_AMT' => [6000, 7000, 8000, 8500] ]; $result = []; // 所有子数组长度一致的前提下,取第一个子数组的长度作为循环次数 $rowCount = count(reset($source)); for ($i = 0; $i < $rowCount; $i++) { foreach ($source as $colKey => $colValues) { $result[$i][$colKey] = $colValues[$i]; } } // 打印验证结果 print_r($result);
2. 内置函数简洁写法
PHP 5.6+ 可用,代码更精简:
$keys = array_keys($source); $result = array_map(function(...$rowValues) use ($keys) { return array_combine($keys, $rowValues); }, ...array_values($source));
两种方式最终输出的$result都和你要求的结构完全一致。
内容的提问来源于stack exchange,提问作者Md. Abdul Hannan
相关产品推荐
相关产品推荐

