对于以下数据集 ( $data
),我正在构建一个多维数组。对于每个唯一键 ( a
),都会有一个b
与之关联的值数组。
$data = [
['a' => 1, 'b' => 23],
['a' => 1, 'b' => 97],
['a' => 2, 'b' => 23],
['a' => 1, 'b' => 47],
['a' => 3, 'b' => 23],
];
$result = [];
foreach ($data as $d) {
if (!isset($result[$d['a']]))
$result[$d['a']] = [];
$result[$d['a']][] = $d['b'];
}
print_r($result);
/*
Output should be:
[
1 => [23, 97, 47],
2 => [23],
3 => [23],
]
*/
if (!isset($result[$d['a']])) $result[$d['a']] = [];
部分很丑。有没有更性感/更有效的方式来构建这个期望的输出?
更新:
谢谢大家,看来我可以走了(甚至没有初始化$result = [];
)
foreach ($data as $d)
$result[$d['a']][] = $d['b'];