我有以下代碼抓住兩個單獨的陣列,翻轉姓和姓名(也除去逗號),並輸出這樣的:分組數組項
導演:伯特&貝爾蒂
作家:伯特&伯蒂
製片人:路易斯·奈特
監製:萬里威爾克斯
製片人:安迪·韋爾奇
演員:克雷格·帕金森
演員:卡米拉盧瑟福
演員:保羅Bhattarcharjee
演員:福特Kieman
演員:Maurren哈巴狗
演員:漢娜沃爾特斯
DP:琳達·霍爾
剪切:馬特Chodan
我需要做的就是將類似的羣體輸出是這樣的:
導演:伯特&伯蒂
作者:Bert & Bertie
製片人:路易斯·奈特,萬里威爾克斯,安迪·韋爾奇
演員:克雷格·帕金森,卡米拉盧瑟福,保羅Bhattarcharjee,福特Kieman,Maurren哈巴狗,漢娜·沃爾特斯
DP:琳達·霍爾
剪切:馬特Chodan
當前PHP代碼:
<?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(「導演」,「製片人」,「演員」,...);' –