首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于公共字符串的数组项分组

基于公共字符串的数组项分组
EN

Stack Overflow用户
提问于 2012-10-17 01:41:05
回答 1查看 1.1K关注 0票数 4

我有下面的代码,它抓取两个单独的数组,翻转姓氏和名字(也移除逗号)并输出如下:

导演:伯特和伯蒂 作者:伯特和伯蒂 制片人:路易丝·奈特 制片人:迈尔斯·威尔克斯 制片人:安迪·韦尔奇 演员:克雷格·帕金森 演员:卡米拉·卢瑟福 演员: Paul Bhattarcharjee 演员:福特·基曼 演员:小狗莫伦 演员:汉娜·沃尔特斯 DP:林达厅 切特:马特·乔丹

我需要做的是对类似的组进行分组,以输出如下内容:

导演:伯特和伯蒂 作者:伯特和伯蒂 制片人:路易丝·奈特,迈尔斯·威尔克斯,安迪·韦尔奇 演员:克雷格·帕金森、卡米拉·卢瑟福、保罗·巴塔尔恰吉、福特·基曼、莫里斯·帕格、汉娜·沃尔特斯 DP:林达厅 切特:马特·乔丹

当前PHP代码:

代码语言:javascript
运行
复制
<?php 
$arrayname=explode(":::",$dwzXmlRec_1->GetFieldValue("PERSON_NAME"));
$arraynamel=count($arrayname);
$arrayrole=explode(":::",$dwzXmlRec_1->GetFieldValue("PERSON_FUNCTION"));   
$arrayrolel=count($arrayrole);

$name = "Lastname, Firstname"; 
$names = explode(", ", $name); 
$name = $names[1] . " " . $names[0]; 

for($i=0;$i<$arrayrolel;$i++) 
    { 
        $names = explode(", ", $arrayname[$i]); 
        $name = $names[1] . " " . $names[0];
        echo $arrayrole[$i].': '.$name.'<br />';
    } 
?>

更新:只有一个问题,数据是从xml节点设置的,因为它在数组中,"as“是一个角色之前的一个角色。例如,“演员”是第一位,然后是“导演”。有没有什么简单的方法来逆转它,让导演先来,然后再投?我添加了代码来隐藏不需要的角色/人员,请参阅下面的代码:

代码语言:javascript
运行
复制
// print out the list of people in each role
foreach($roles as $rolename => $people) {
    if ($rolename!="Cut" && $rolename!="Producer" && $rolename!="DP" && $rolename!="Writer"){
        if($rolename=="Actor") { $rolename="Cast";};
        echo $rolename . ": " . implode(", ", $people) . "<br />";
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-17 01:49:41

我将构建一个数组,将角色名称映射到填充该角色的人员数组中。可能是这样的:

代码语言:javascript
运行
复制
$roles = array();
for($i = 0; $i < $arrayrole1; $i++) {
    $names = explode(", ", $arrayname[$i]);
    $name = $names[1] . " " . $names[0];
    // append the name to the array of people filling the role
    $roles[$arrayrole[$i]][] = $name; 
}

// print out the list of people in each role
foreach($roles as $rolename => $people) {
    echo $rolename . ": " . implode(", ", $people) . "<br />";
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12925911

复制
相关文章

相似问题

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