首页 > 解决方案 > 代表 Key 用逗号分组值

问题描述

如何根据相同的键按每个值的逗号分组,数组是:

Array
(
    [0] => Array
        (
            [0] => 201767.11
            [1] => 514324.91
            [2] => 73205.74
        )

    [1] => Array
        (
            [0] => 349399.51
            [1] => 647217.10
            [2] => 3500.00
        )

    [2] => Array
        (
            [0] => 285169.05
            [1] => 522357.20
            [2] => 10.00
        )

    [3] => Array
        (
            [0] => 126858.21
            [1] => 185190.59
            [2] => 0
        )

)

结果:

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"

)

标签: phparrays

解决方案


使用可以使用array_map

$arr = array_map(null, ...$arr);
$temp = array_map(function($item){
    return implode(", ", $item);
},$arr);

输出

Array
(
    [0] => 201767.11, 349399.51, 285169.05, 126858.21
    [1] => 514324.91, 647217.1, 522357.2, 185190.59
    [2] => 73205.74, 3500, 10, 0
)

演示

如果你想使用单线

$temp = array_map(function ($item) {return implode(", ", $item); }, array_map(null, ...$arr)); 

演示

请注意使用array_mapwithnull对子数组进行分组,以获取每个子数组的第 n 个索引。

... 我们使用splat 运算符将其作为参数公开给函数。

参考:内数组映射


推荐阅读