我正在取一个名称列表并将姓氏放在第一位。当我使用explode创建$ name数组时,第一个名字的第一个名字在数组位置0,第一个名字在第一个位置,但其他名字的第一个名字在第一个位置,第二个名字在第二个位置。foreach中的分解变量,但在第一个数组之后,数组从1开始,而不是0
我从另一个做类似事情的脚本复制了这段代码,但是在那段代码中,包括第一个实例在内的所有名字都从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 />';
}
谢谢,我知道我是不占为我的最初“爆炸”的空间,这解释了为什么第一个显示好,其次是关闭。我知道我错过了一些东西。 – mattrweaver