强烈推荐使用您的查询使用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
那你也有。 –