为每个内爆添加一个变量

Adding a variable to each implode

我有一个图像文件名数组,它通过联系表传递,并作为电子邮件发送给网站所有者(这些图像是上传的,但那部分工作正常)。

$Images = $_POST['images6ex'] 打印数组,我使用 $result = implode(', ', $Images); 使其更具可读性。

我希望能够为每个内爆结果添加一个基础 URL,这样电子邮件收件人只需单击(或 copy/paste)中的 link电子邮件,而不是每次都登录 ftp。这可能吗?没必要用我不认为的 href 标签包起来。

我试过了:

$fullurl = array($baseurl,$Images);
$result = implode(', ', $fullurl);

但我刚得到

http://whatever.com/files/, Array

作为输出。

我的最终输出需要是一个变量,因为这是电子邮件正文的构建方式:http://pastebin.com/JJSW3Jbg。我不确定这是否是构建电子邮件正文的最有效方法,但它确实有效...

您需要循环将其添加到数组中的每个元素,这不会像那样发生。最优雅的方法是array_map:

echo join(', ', array_map(
    function ($url) use ($baseurl) { return "$baseurl/$url"; },
    $Images
));

最短(虽然不是很优雅)的解决方案可能是:

$result = $baseurl.implode(', '.$baseurl, $Images);

这会在 $baseurl 的每个元素前加上 $baseurl,第一个元素除外(因为 implode 就是这样工作的),然后在整个结果前加上它,以修复第一个元素。