首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何对依赖于值的独立字符串展开implode()

如何对依赖于值的独立字符串展开implode()
EN

Stack Overflow用户
提问于 2011-01-28 00:31:14
回答 1查看 451关注 0票数 1

在页面的不同位置,我在while循环中使用mysql_fetch_array()将值复制到一个新的PHP数组中。在此基础上,我使用implode()将值写入一个字符串中,以显示给用户。当我只处理一列或两列时,这对我来说工作得很好,这两列可以合并到一行中显示。

现在,我正在处理一个包含两部分数据的数组,角色和名称。我想根据角色的值在不同的行上显示输出字符串。这是一个图书馆数据库,所以我希望所有与作者角色相关的名称在一行上,出版商角色的名称在另一行上,依此类推。

代码语言:javascript
代码运行次数:0
运行
复制
$sql = mysql_query("select role, party_name from vw_roles where publication_id =  
$id order by role", $link);
while($role = mysql_fetch_array($sql)) {
    $roles[] = $role[role] . ": ". $role[party_name]; }
$the_roles = implode(" ; ", $roles);

输出:作者: Origen;书商: Gulielmus Morden;书面文本评论员: Tarin,Jean;书面文本评论员: Hoeschel,David;编辑: Spencer,William;印刷者: Joan。海耶斯

但是,我需要尝试将字符串拆分成不同的子字符串,以便在标题Author下的输出表中只输出Origen。是否更好的做法是遍历数组$roles[]并将名称分隔到该角色的新数组中?所以

代码语言:javascript
代码运行次数:0
运行
复制
if ($roles[role] == "Author") 
    $author[] = $roles[party_name]; 

对每个角色进行某种形式的迭代?但是,我需要为role指定每个可能的值,以防它被包含在这个特定的记录中,这会使代码非常长。

这里肯定有更好的方法,我只是还没能找到它。有人有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-01-28 00:44:44

代码语言:javascript
代码运行次数:0
运行
复制
$sql = mysql_query("select role, party_name from vw_roles where publication_id =  
$id order by role", $link);
while($role = mysql_fetch_array($sql)) {
    $roles[$role[role]][] = $role[party_name]; }
foreach($roles as $role => $values) {
  echo "Role ".$role.": " implode(" ; ", $values);
}

不确定这是不是你的意思?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4819021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档