为了账号安全,请及时绑定邮箱和手机立即绑定

用逗号代表Key对值进行分组

用逗号代表Key对值进行分组

PHP
白衣非少年 2021-08-28 16:12:22
如何根据相同的键按逗号对每个值进行分组,数组是: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")
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

只需逐步提取每一列并加入它。这仅适用于子数组,如基于 0 的顺序索引所示:


$i = 0;

while($new = array_column($array, $i)) {

    $result[] = implode(', ', $new);

    $i++;

}

对于其他非基于 0 的、非顺序的、非整数的,只需在提取和连接之前重新索引子数组:


$array = array_map(function($v) { return array_values($v); }, $array);


查看完整回答
反对 回复 2021-08-28
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

使用可以使用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 运算符,我们使用它作为参数公开给函数。



查看完整回答
反对 回复 2021-08-28
  • 2 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信