原始資料結構:
$array = array(
0 => array(
'id' => '2', 'lessonid' => '200', 'userid' => '6038',
'username' => 'jsc11101', 'lessontitle' => 'Module1-Unit2 I\'m From China', 'courseid' => '4'
),
1 => array(
'id' => '3', 'lessonid' => '201', 'userid' => '6038',
'username' => 'jsc11101', 'lessontitle' => 'Module2-Unit1 I Can Speak English', 'courseid' => '4'
),
// ... 更多筆資料
);
$study_num = array();
foreach ($array as $value) {
$lessonid = $value['lessonid'];
$study_num[$lessonid] = (empty($study_num[$lessonid]) ? 0 : $study_num[$lessonid]) + 1;
}
// 取用:$study_num[$lessonid]
使用三元運算子處理首次出現時的初始化。
$lessonid_array = array();
foreach ($array as $key => $value) {
$lessonid_array[$value['lessonid']] = $value;
}
// 取用:$lessonid_array[$lessonid]['lessontitle']
foreach ($study_num as $key => $value) {
$lessonid_array[$key]['count'] = $value;
}
$a_array = array(
'200' => array(
'id' => '2', 'lessonid' => '200', 'userid' => '6038',
'username' => 'jsc11101', 'lessontitle' => 'Module1-Unit2 I\'m From China',
'courseid' => '4', 'count' => '學習次數'
),
'201' => array( ... ),
// ...
);
array_column() (PHP 5.5+) 快速提取欄位:array_column($array, 'lessonid')array_count_values():array_count_values(array_column($array, 'lessonid'))array_combine() 搭配 array_column()GROUP BY 統計,減少記憶體佔用摘自 xiaxia0083的專欄