因此,名称已经说明或没有说明,因为我真的不知道如何命名我的问题,我正在努力实现以下目标。
我得到了一个MySQL查询,它给我提供了这样的结果:
id | name | position
1 Kevin CEO
2 Sarah Developer
3 Daniel Developer
4 Michael Marketing
5 Tom Marketing
现在我需要在前端显示这样的信息:
**CEO**
Kevin
**Developer**
Sarah
Daniel
**Marketing**
Michael
Tom
这意味着我只需要一次职位列作为标题,并且在它下面我想显示这个职位的匹配人员。我没有选择对每个职位进行单独的查询,因为在我的表中我有大约75个职位
那么,我如何实现这一点呢?一方面,只获取一次我的查询结果的position
s作为标题,另一方面,获取每个人在其下列出的该职位的name
。
我希望我能很好地解释我的问题。
您可以在结果中循环一次,并使位置成为新数组中的键。
$newArray = [];
foreach($myQueryResult as $res){
$newArray[$res['position']][] = $res['name'];
}
这将产生以下输出:
Array (
"CEO" => [ "kevin" ],
"Developer" => [ "Sarah", "Daniel" ],
"Marketing" => [ "Michael", "Tom" ]
)
使用此查询:
SELECT `position`, GROUP_CONCAT(name SEPARATOR '<br>') as name FROM `YourTableName` GROUP BY `position`