1 回答
TA贡献1793条经验 获得超6个赞
如果您指的是性能最佳,那么在 foreach 循环中迭代是最有效的方法。这可能不是最优雅的方式。您也可以使用array_map或其他类似的;每个人的喜好。在任何情况下,通过使用测验编号作为分组键。这是简单的:
$vars = [ [ 'Quiz 1' , 89 ] , ['Quiz 2' , 78] , ['Quiz 1' , 56] , ['Quiz 1' , 25] , ['Quiz 2' , 87] , ['Quiz 3' , 91] ];
$grouped = [];
foreach($vars as $var) {
empty($grouped[$var[0]]) && $grouped[$var[0]] = [$var[0]]; // If Quiz # must go in.
$grouped[$var[0]][] = $var[1];
}
输出:
Array [
[Quiz 1] => [
[0] => Quiz 1
[1] => 89
[2] => 56
[3] => 25
]
[Quiz 2] => [
[0] => Quiz 2
[1] => 78
[2] => 87
]
[Quiz 3] => [
[0] => Quiz 3
[1] => 91
]
]
您会注意到这些值以 Quiz # 作为键进行分组。(必需。)使数组中的第一个条目变得多余。如果不需要数组内测验编号,请注释掉循环的第一行。如果您需要它并且不喜欢用作键的测验数字,请完成以$grouped = array_values($grouped);恢复为普通数字索引。
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报