对关联数组的值进行分组,并将键累积为逗号分隔值

问题描述 投票:0回答:2

我有这个数组:

Array ( 
    [061716v] => 1 
    [061610A] => 1 
    [062433AP] => 1 
    [063868M] => 2 
    [059173V] => 3 
    [061579A] => 3 
    [062404AP] => 3 
    [059179V] => 4 
    [061582A] => 4 
    [061697V] => 4 
    [062407AP] => 4 
)

我怎样才能得到这个:

Array ( 
    [1] => 061716v,061610A,062433AP 
    [2] => 063868M 
    [3] => 059173V,061579A,062404AP 
    [4] => 059179V,061582A,061697V,062407AP 
)
php arrays grouping
2个回答
5
投票

在 PHP 中,单个

foreach()
即可完成这项工作:-

$final_array = [];

foreach($initial_array as $key=>$val){

    $final_array[$val] = isset($final_array[$val]) ? $final_array[$val].','.$key : $key;

}

print_r($final_array);

输出:-https://3v4l.org/lSKE2


1
投票
// You also can use implode to skip isset checks
$group = [];

foreach ($initialArray as $key => $value) {
    $group[$value][] = $key;
}

$result = array_map(function($v) { return implode(",",$v); }, $group);

print_r($result);
© www.soinside.com 2019 - 2024. All rights reserved.