我遇到爆炸问题,我的代码:
<?php
$the_genre = 'Drame, Action, Comédie';
$genre_explode = explode(',', $the_genre);
$sep = '';
foreach($genre_explode as $genre)
{
$genre = str_replace(' ', '', $genre);
$genre .= $sep.'<a href="/genre/'.$genre.'/">'.$genre.'</a>';
$sep = ', ';
}
echo $genre;
?>
我有这个:
Comédie, <a href="/genre/Comédie/">Comédie</a>
我想要这个:
<a href="/genre/Drame/">Drame</a>, <a href="/genre/Action/">Action</a>, <a href="/genre/Comédie/">Comédie</a>
有什么想法吗?
答案 0 :(得分:2)
您正在合并循环中指定的变量,因此结果只输出了数组的最后一个元素。您可以使用此代码来实现您的目标:
$the_genre = 'Drame, Action, Comédie';
$genre_explode = explode(',', $the_genre);
$out = '';
foreach($genre_explode as $genre)
{
$genre = trim($genre);
$out .= '<a href="/genre/'.$genre.'/">'.$genre.'</a>, ';
}
echo $out;
答案 1 :(得分:2)
你在错误的地方呼应。将echo语句移动到循环中:
foreach($genre_explode as $genre)
{
$genre = str_replace(' ', '', $genre);
$genre .= $sep.'<a href="/genre/'.$genre.'/">'.$genre.'</a>';
$sep = ', ';
echo $genre;
}
这将返回:
Drame<a href="/genre/Drame/">Drame</a>Action, <a href="/genre/Action/">Action</a>Comédie, <a href="/genre/Comédie/">Comédie</a>
如果您在循环之外回显,则只会获得最后值$genre
这是一个有效的EXAMPLE
编辑 - 其他信息
您也可以使用str_replace()
代替trim()
:
$genre = trim($genre);