我有以下代码,它获取两个不同的数组,翻转姓氏和名字(同时删除逗号),并输出如下内容:
我需要做的是将相似的组分组以输出类似于以下内容:导演:Bert & Bertie
作者:Bert & Bertie
制片人:Louise Knight
制片人:Miles Wilkes
制片人:Andy Welch
演员:Craig Parkinson
演员:Camilla Rutherford
演员:Paul Bhattarcharjee
演员:Ford Kieman
演员:Maurren the Pug
演员:Hannah Walters
摄影师:Lynda Hall
剪辑:Matt Chodan
当前的PHP代码:导演:Bert & Bertie
作者:Bert & Bertie
制片人:Louise Knight, Miles Wilkes, Andy Welch
演员:Craig Parkinson, Camilla Rutherford, Paul Bhattarcharjee, Ford Kieman, Maurren the Pug, Hannah Walters
摄影师:Lynda Hall
剪辑:Matt Chodan
<?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”是一个角色在另一个角色之前。例如,“演员”先出现,然后是“导演”。是否有任何简单的方法可以反转它,以便导演先出现,然后是演员?我已经添加了代码来隐藏不需要的角色/人员,请参见下面:
// 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 />";
}
}
$displayRoles = array("导演", "制片人", "演员", ...);
- Joe Day