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 關注
- 120 瀏覽
添加回答
舉報