处理动态数组中的信息

时间:2014-02-13 10:33:59

标签: php arrays

您好我会尽量保持简短。这几天我一直在努力。

我的代码的目标是回显一个名称列表,每个名称都分配了一个角色:

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= ... 但在这种情况下,两个值都是同一个数组的元素,代码只是通过数据库中的行并打印出来。

我很感激您的任何建议。

1 个答案:

答案 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实际上是一个数组数组。