強烈推薦使用您的查詢使用g mysql GROUPing
功能所以你不必機械地做到這一點。但是,如果出於任何原因,您的結果集看起來像您發佈的數據,您希望循環訪問並按照您所描述的方式顯示記錄;您可以遍歷行的陣列,將同一組中的所有用戶捆綁到一個唯一的子陣列中,然後爲顯示器運行一個
foreach
循環。下面的代碼演示如何舉一個例子:
<?php
// SIMULATE AN TO REPRESENT THE RECORDS FROM THE DB TABLE...
$array = array(
array(
"user_id" => 1,
"username" => "John",
"group_id" => 1,
),
array(
"user_id" => 2,
"username" => "Mark",
"group_id" => 2,
),
array(
"user_id" => 2,
"username" => "Steve",
"group_id" => 2,
),
);
// CREATE AN ARRAY FOR USE IN GROUPING USERS WITH THE SAME group_id
$groupArray = array();
// WALK THE SIMULATED ARRAY (IN YOUR CASE YOUR ROWS)
// AND BUILD UP THE $groupArray
$result = array_walk($array, function($data) use(&$groupArray) {
if(!array_key_exists($data['group_id'], $groupArray)){
$groupArray[$data['group_id']][] = $data;
}else{
if(!in_array($data, $groupArray)){
$groupArray[$data['group_id']][] = $data;
}
}
});
// CREATE AN OUTPUT TO HOLD THE HTML CONTENT FOR DISPLAY:
$output = "";
// LOOP THROUGH THE $groups AND BUILD UP YOUR DATA...
foreach ($groupArray as $groupID=>$groups){
$output.= "<div class='group" . $groupID . "'>" . PHP_EOL;
$output.= "<h3 class='group-users'>Users in Group {$groupID}</h3>" . PHP_EOL;
foreach($groups as $group){
$output.= "<span class='user-name'>Username: " . $group['user_id'] . ": {$group['username']},</span><br />" . PHP_EOL;
}
$output.= "</div>" . PHP_EOL;
}
var_dump($output);
// echo $output;
// THE var_dump($output) PRODUCES::
string '<div class='group1'>
<h3 class='group-users'>Users in Group 1</h3>
<span class='user-name'>Username: 1: John,</span><br />
</div>
<div class='group2'>
<h3 class='group-users'>Users in Group 2</h3>
<span class='user-name'>Username: 2: Mark,</span><br />
<span class='user-name'>Username: 2: Steve,</span><br />
</div>
' (length=317)
到目前爲止您嘗試了什麼? –
我什麼也沒試,我也不知道該怎麼做 – Barba
那你也有。 –