【问题标题】:Issue pushing item to the end of a PHP array?问题将项目推送到 PHP 数组的末尾?
【发布时间】:2015-08-11 17:18:06
【问题描述】:

我有以下代码...

if ($email_selection == "primary") {

     $default_select = "<option value=''>Select Email</option>";
     $select_1 = "selected";
     $to_array[] = $profile_primary_email;

} elseif ($email_selection == "secondary") {

     $default_select = "<option value=''>Select Email</option>";
     $select_2 = "selected";
     $to_array[] = $profile_primary_email;

} elseif ($email_selection == "both") {

     $default_select = "<option value=''>Select Email</option>";
     $select_3 = "selected";
     $to_array[] = $profile_primary_email . ',' . $profile_secondary_email;

} 

if ($manual_email != "") {

    $to_array[] = $manual_email;

}

$to_array_count = count($to_array);

$to = $to_array["0"];

for ($v = 1; $v < $to_count; $v++) {

    $to = $to . ',' . $to_array[$v];

}

这段代码的作用是获取一个选择输入的值,并根据选择输入的值将一个电子邮件地址推送到$to_array的末尾。然后该脚本为每封电子邮件创建一个用逗号分隔的字符串,该字符串稍后将用作 PHP mail() 函数中的$to

由于某种原因,选择字段包含任何值,$manual_email 中包含的电子邮件地址未附加到数组中。但是,如果选择字段没有值,则$manual_email 通常会附加到空数组中。

【问题讨论】:

  • $to_array[0]$to_array['0'] 在 PHP 中是不一样的。
  • 删除或添加引号不会改变脚本的功能。我一直交替使用它们并且很好。无论如何,无论哪种方式,我都有同样的问题。
  • 只是为了澄清最后一段,如果$to_array 包含一些数据,您是说$manual_email 不会被附加?
  • $manual_email 到底是什么?看起来未定义。
  • 我们是否应该假设围绕此代码进行了表单提交测试?

标签: php arrays append


【解决方案1】:

我不会重写你所有的代码,但是:

$to_array_count = count($to_array);

$to = $to_array["0"];

for ($v = 1; $v < $to_count; $v++) {

   $to = $to . ',' . $to_array[$v];

}

应该只是:

$to = implode(',', $to_array);

不太确定为什么不使用foreach 循环,如果你打算这样做的话。

【讨论】:

  • 你是对的。这种方式效率低下,您的解决方案效果很好。谢谢。
猜你喜欢
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2011-10-08
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多