您好我会尽量保持简短。这几天我一直在努力。
我的代码的目标是回显一个名称列表,每个名称都分配了一个角色:
switch ($row["c_type"]) {
case "0": $ind0++; $artists0 .= "$case0";
和
$case0= "<div>
<strong>
<a href='/names/advanced_search?" . $querystringparams . urlencode($row["position"]) . "&pg=1'>" . lng($row["role"],null,true). "</a>
</strong>
- <a href='/names/" . $row["id"]. "/" . encodeURL($row["name"]) . "'>
<span itemprop='name'>". $row["name"] . "". $row["name"] . "</span></a></div>";
到目前为止,代码打印出的数组行如下:
IT - John Smith
导演 - 史密斯琼斯
IT - 简
但我的目标是让它看起来像:
IT - John Smith,Jane
导演 - 史密斯琼斯
通常我会在$row[position]==$row[position] $case0=
...
但在这种情况下,两个值都是同一个数组的元素,代码只是通过数据库中的行并打印出来。
我很感激您的任何建议。
答案 0 :(得分:1)
首先创建数组,其中包含位置和值的人物。然后遍历该数组并回显内容。
<?php
$organisation = array(); // better name welcome
while ($row = ...)
{
$organisation[$row['position']][] = $row['name'];
}
foreach ($organisation as $position => $employees)
{
echo '<strong>' . $position . '</strong>';
echo implode(', ', $employees);
echo "<br/>\n";
}
?>
修改强>
我可以想象$organisation[$row['position']][]
部分看起来很混乱。 $ row ['position']返回'IT'这样的位置。它将成为$ organization ['IT'] [],这意味着您向名为$ organization ['IT']的数组添加一个值。所以$ organization实际上是一个数组数组。