从一个表单提交2个substr

时间:2016-10-21 03:16:18

标签: php

您好我在第一个文本区域有一个包含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成为电子邮件地址的数组

1 个答案:

答案 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;