在 PHP 中仅将 MySql-Query 的列作为标题获取一次(即使有多个结果)

Get Column of MySql-Query as headline only once in PHP (even if there are several results)

所以,这个名字是怎么说的还是不是怎么说的,因为我真的不知道如何命名我的问题,我正在努力实现以下目标。

我得到了一个 MySQL-Query,结果如下:

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

这意味着我只需要一次 position-column 作为标题,在它下面我想显示这个职位的匹配人员。 我无法对每个位置进行单独查询,因为在我的 table 中我有 75 个。

那么我怎样才能做到这一点,一方面,我的查询结果的 position 只作为标题一次,而另一方面,让每个人的 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`