gpt4 book ai didi

php - 按一个列值对行数据进行分组,并使用另一列值填充每组中的子数组

转载 作者:行者123 更新时间:2023-12-02 09:22:38 25 4
gpt4 key购买 nike

我想将数据分组到具有关联行的数组中。组应由 type 值确定,并且每个组内的所有 label_id 值应形成一个子数组。

示例输入:

$array = [
['type' => 'AAA', 'label_id' => 'A1,35'],
['type' => 'AAA', 'label_id' => 'A2,34'],
['type' => 'BBB', 'label_id' => 'B1,29'],
['type' => 'CCC', 'label_id' => 'C1,20'],
['type' => 'CCC', 'label_id' => 'C2,19'],
['type' => 'CCC', 'label_id' => 'C3,18']
];

期望的结果:

[
[
'type' => 'AAA',
'label_id' => [
'A1,35',
'A2,34'
],
[
'type' => 'BBB',
'label_id' => [
'B1,29'
],
],
[
'type' => 'CCC',
'label_id' => [
'C1,20',
'C2,19',
'C3,18',
]
]
]

最佳答案

这应该可以解决问题

$args = array
(
array( 'type' => 'AAA', 'label_id' => 'A1,35' ),
array( 'type' => 'AAA', 'label_id' => 'A2,34' ),
array( 'type' => 'BBB', 'label_id' => 'B1,29' ),
array( 'type' => 'CCC', 'label_id' => 'C1,20' ),
array( 'type' => 'CCC', 'label_id' => 'C2,19' ),
array( 'type' => 'CCC', 'label_id' => 'C3,18' )
);

$tmp = array();

foreach($args as $arg)
{
$tmp[$arg['type']][] = $arg['label_id'];
}

$output = array();

foreach($tmp as $type => $labels)
{
$output[] = array(
'type' => $type,
'label_id' => $labels
);
}

var_dump($output);

输出是:

array
0 =>
array
'type' => string 'AAA' (length=3)
'label_id' =>
array
0 => string 'A1,35' (length=5)
1 => string 'A2,34' (length=5)
1 =>
array
'type' => string 'BBB' (length=3)
'label_id' =>
array
0 => string 'B1,29' (length=5)
2 =>
array
'type' => string 'CCC' (length=3)
'label_id' =>
array
0 => string 'C1,20' (length=5)
1 => string 'C2,19' (length=5)
2 => string 'C3,18' (length=5)

关于php - 按一个列值对行数据进行分组,并使用另一列值填充每组中的子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com