名前のリストを取得し、姓を最初に付けています。分解を使用して $name 配列を作成すると、名の名前は配列の位置 0 にあり、姓は位置 1 にありますが、他の名前はすべて、位置 1 の名と位置 2 の姓で始まります。
このコードは、同様のことを行う別のスクリプトからコピーしましたが、そのコードでは、最初のインスタンスを含むすべての最初の名前が 1 から始まります (少なくとも一貫性があります)。
私は基本的な何かが欠けていると思います。よろしくお願いします。
コードは次のとおりです。
$_511a = 'Maria Smith, Lance Farquardt, Daniel Berquist, John Barton, Milo Silver';
echo '511a: ' . $_511a . '<br />';
$castsplit = explode(',' , $_511a);
foreach($castsplit as $cast) {
$name = explode(' ',$cast);
$lastname = end($name);
if(count($name) >= 4){
$middlename = $name[2];
} else {
$middlename = null;
}
$firstname = $name[1];
if($middlename){
$castmembers[] = $lastname . ', ' . $firstname . ' ' . $middlename;
} else {
$castmembers[] = $lastname . ', ' . $firstname;
}
}
echo "Corrected names: <br />";
foreach($castmembers as $castmember) {
echo $castmember . '<br />';
}