问题描述
将多维数组中的数据按一列分组并从每组中的另一列创建一个子数组的最佳方法是什么?
$array = [
['idAnswer' => 209,'idQuestion' => 141],['idAnswer' => 1668,['idAnswer' => 211,'idQuestion' => 142]
];
我需要得到:[['209','1668'],['211']]
。
有什么方法可以做到这一点?
解决方法
我似乎还找不到完全相同的副本(他们中的大多数人都希望保留一整行数据),因此我会在此期间发布答案。
使用结果数组中的临时一级键进行分组,然后将出现的新元素推送到每个组中。
代码:(Demo)
$array = [
['idAnswer' => 209,'idQuestion' => 141],['idAnswer' => 1668,['idAnswer' => 211,'idQuestion' => 142]
];
$result = [];
foreach ($array as $row) {
$result[$row['idQuestion']][] = $row['idAnswer'];
}
var_export(array_values($result));
输出:
array (
0 =>
array (
0 => 209,1 => 1668,),1 =>
array (
0 => 211,)