您好我在第一个文本区域有一个包含2个文本区域的表单,我的用户将发布玩家姓名,然后是玩家电子邮件, 在第二场比赛中,他们将发布球员名单和积分榜。 在第一个文本区域中,发布的报告将如下所示:
1st place: MC_Vicky
1st place email: motherof2@mnvb.co.uk
2nd place: TM7_CharrM5_
2nd place email: snezhanagrozeva@gmail.com
3rd place: devinm21
3rd place email:
3rd place: poppop
3rd place email: bobmitch1170@gmail.com
我试图将此报告分成2个单独的数组,准备为我的数据库准备它有2列。 我几乎已经解决了这个问题,但现在凌晨4点,我的大脑受伤, 到目前为止,我已经使用了这段代码:
// split the player nics and email address's into seperate arrays
$rec = explode( PHP_EOL, $_POST['emails'] );
$rec = array_map( 'trim', $rec );
$status = array();
foreach( $rec as $rec ) {
$Spaces = strrpos( $rec, ':' );
$plays = trim( substr( $rec, 12, $Spaces +1 ) );
$email = trim(substr( $rec, $Spaces ) );
echo $plays . " <br />";
//echo $email . " <br />";
// end of Emails split
当我查看此代码的回声时,我在单独的行中获得了播放器名称和电子邮件,但是在1个变量中。 所以,如果我发表评论$ email echo,我会得到结果的双重回音。 任何人都可以看到我需要做的事情, 我需要$ plays作为玩家名字的数组 然后$ email成为电子邮件地址的数组
答案 0 :(得分:-1)
你需要在foreach循环之外回声。你还需要做foreach($ rec为$ r)而不是$ rec作为$ rec。您还需要定义两个空白数组,一个用于电子邮件,另一个用于播放。然后,您可以使用数组推送将每个值推送到各自的数组中。
$rec = explode( PHP_EOL, $_POST['emails'] );
$rec = array_map( 'trim', $rec );
$status = array();
$emails = array();
$plays = array();
foreach( $rec as $r ) {
$Spaces = strrpos( $r, ':' );
$play = trim( substr( $r, 12, $Spaces +1 ) );
$email = trim(substr( $r, $Spaces ) );
array_push($emails, $email);
array_push($plays, $play);
}
echo $plays;
echo $emails;