PHP foreach循环输出重复

时间:2014-04-25 12:37:23

标签: php foreach duplicate-data

解决:

如果在循环中被KNaito暗示(即$ rfield ='';),则必须为$ rfield设置初始值''。 谢谢!


原始邮件:

作为已解决的this problem的延续,出现了一个新问题,即foreach循环的输出在一个实例中重复而不是另一个实例:

这是我的循环:

foreach($fieldsarray as $field) {

${$field} = $globalrow[$field];

if(!empty($$field)) {$rfield.='<tr><td width="50%">'.${$field.'_label'}.': </td><td width="50%">'.${$field}.'</td></tr>';

}
} 

$allrows=$rfield;

$ fieldsarray有太多要插入的元素,但它是这样的:

$fieldsarray = array ('firstname','lastname','email');

$ globalrow是一个mysql查询,它根据mysql_fetch_assoc获取登录用户的数据。

预期的HTML输出将是一个注册确认,其中包含屏幕上显示的输入数据摘要以及用户收到的电子邮件确认。

这是一个由输入数据行组成的表。所有数据都保存在数据库中。

表格行在屏幕上正确输出,例如:

First Name: John
Last Name : Smith

但是由于电子邮件确认中的一些奇怪的原因输出重复

First Name: John
Last Name : Smith
First Name: John
Last Name : Smith

在这两种情况下,我只是用以下方式回复它们:

<?php echo $allrows ?>

正如我所说,我已经阅读过使用while和foreach时出现重复输出的问题。 mysql_fetch_array - 但你可以看到这不是这里的情况,为什么在电子邮件确认中这个工作正常,所有元素都会显示两次?


编辑以解释下面的用户:

我有一个注册表,人们注册(插入个人数据)。当他们填写表单时,他们会进入摘要页面,显示他们插入的数据,如:

Prefix: Mr.
First Name: John
Last Name: Smith

点击“提交”后 - 用户被标记为“已注​​册”,并且他收到了确认电子邮件。

电子邮件确认本身是一个简单的HTML文件,添加了PHP代码段,用于打印带有用户数据的行(完全如“摘要”页面所示)。

现在,在摘要页面上,输出正常,但在电子邮件确认中,所有数据都是DUPLICATED,并显示,例如。为:

Prefix: Mr.
First Name: John
Last Name: Smith
Prefix: Mr.
First Name: John
Last Name: Smith

那么,为什么会发生这种情况呢?摘要和确认HTML都是完全相同的代码。

编辑(PRINT_R):

的print_r($ globalrow):

    Array ( [regid] => 630 [eid] => 1 [guid] => xxxxxx-D898-CBE0-D018-xxxxxxx [regcomp] => 1 [regdate] => 2014-04-25 14:57:28 [prefix] => Mr. 
[nametitle] => [firstname] => Xxxxx [lastname] => Xxxxxx [company] => XXXXXXX [department] => [jobtitle] => [street] => XXXXXXXX [zip] => 8217878979 [city] => XXXXX [country] => XXXXX [priv_street] => [priv_zip] => [priv_city] => 
[priv_country] => [phone] => XXXXXX [fax] => [mobile] => [email] => XXXXXXX [travel] => [terms] => [notes] => [accommodation] => [roompartner] => [arrivaldate] => [arrivaltype] => [arrivalairport] => [arrivalflightno] => 
[arrivaltransfer] => [departuredate] => [departuretype] => [departureairport] => [departureflightno] => [departuretransfer] => 
[dinner] => [dinnerpersons] => 0 [food] => [hotel] => [checkin] => [checkout] => [roomtype] => [special] => [hotelnotes] => [groupparticipanttype] => Companion [mainparticipantid] => 629 ) 

的print_r($ fieldsarray):

    Array ( [0] => prefix [1] => nametitle [2] => firstname [3] => lastname [4] => company [5] => department [6] => jobtitle [7] => email 
[8] => phone [9] => fax [10] => mobile [11] => street [12] => zip [13] => city [14] => country [15] => dinner [16] => dinnerpersons 
[17] => food [18] => checkin [19] => checkout [20] => hotel [21] => roomtype [22] => roompartner [23] => special [24] => hotelnotes 
[25] => accommodation [26] => arrivaldate [27] => departuredate [28] => notes [29] => terms )

0 个答案:

没有答案