[英]How to sort a result and display group wise
mysql查詢返回以下結果。
id - name - class
1 - A - 5
2 - D - 1
3 - B - 5
4 - c - 1
5 - E - 5
(由於已在id上應用了訂單,因此無法進行按類別排序)
現在,我想按如下所示按類顯示視圖
Class 1 Class 5
id - name id - name
2 - D 1 - A
4 - C 3 - B
5 - E
因此,我遵循以下步驟。
1)使用array_push()創建兩個單獨的數組
array_push($class_array, $class); // indicates the class
array_push($other_array, $other); // $other indicates the string 'id - name';
2)asort($ class_array);
3)執行下面的foreach循環,我被困在這個
$new_c_array = array();
$table_array = array();
foreach ($class_array as $key => $val) {
if (in_array($key, $new_c_array)) {
$view_val = $other_array[$key];
//**I am stuck in this section**
// trying to find the next key from $class_array and check whether it is same of current key
// if same then, its fine
// else $view_val .= '</table>'
array_push($table_array, $view_val);
} else {
array_push($new_c_array, $val);
$view_val = '<table>';
$view_val .= '<tr>';
$view_val .= '<td> Class' . $val . '</td>';
$view_val .= '</tr>';
$view_val .= $other_array[$key];
array_push($table_array, $view_val);
}
}
題:
1)如何在該循環中找到下一個鍵?
2)有沒有更好的方法可以實現目標?
我認為這是您想要的:
//you array from DB
$dataArray=array(
1 => array(
'name' => A,
'class' => 5
),
2 => array(
'name' => D,
'class' => 1
),
3 => array(
'name' => B,
'class' => 5
),
4 => array(
'name' => C,
'class' => 1
),
5 => array(
'name' => E,
'class' => 5
)
);
$resultArray=array();
foreach($dataArray as $key=>$value){
$resultArray[$value['class']][]=array(
'name' => $value['name'],
'id' => $key
);
}
print_r($resultArray);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.