如何转置多维数组并将同列值用逗号拼接为字符串?
解决数组转置并按索引拼接字符串的问题
这问题我熟,用PHP来实现的话非常简单,几步就能得到你想要的结果:
步骤说明
- 第一步:转置数组:利用PHP的
array_map函数,当传入null作为回调函数时,它会自动将多个数组的对应索引元素组合成新数组,完美实现行转列的需求。 - 第二步:拼接字符串:对转置后的每个子数组,用
implode函数将元素以逗号加空格拼接成字符串,完全匹配你的期望格式。
完整代码示例
// 你的输入数组 $input = [ [201767.11, 514324.91, 73205.74], [349399.51, 647217.10, 3500.00], [285169.05, 522357.20, 10.00], [126858.21, 185190.59, 0], ]; // 转置数组(行转列) $transposed = array_map(null, ...$input); // 将每个转置后的子数组拼接成逗号分隔的字符串 $result = array_map(function($item) { return implode(', ', $item); }, $transposed); // 输出结果 print_r($result);
运行结果
运行这段代码后,你会得到和期望完全一致的输出:
Array ( [0] => 201767.11, 349399.51, 285169.05, 126858.21 [1] => 514324.91, 647217.10, 522357.20, 185190.59 [2] => 73205.74, 3500.00, 10.00, 0 )
如果需要给每个字符串加上双引号,只需要修改拼接的回调函数即可:
$result = array_map(function($item) { return "\"" . implode(', ', $item) . "\""; }, $transposed);
这样输出的每个元素就会带有你期望的双引号啦~
内容的提问来源于stack exchange,提问作者Ravi Bhushan
相关产品推荐
相关产品推荐

