我的阵列中爆炸的 Foreach 不起作用

Foreach from Explode in my Array doesn't work

我有爆炸问题,我的代码:

<?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>

有什么想法吗?

您正在连接在循环中分配的变量,因此结果您只输出了数组的最后一个元素。您可以使用此代码来实现您想要的:

$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;

你在错误的地方回显。将 echo 语句移动到循环中:

foreach($genre_explode as $genre)
{
    $genre = str_replace(' ', '', $genre);

    $genre .= $sep.'<a href="/genre/'.$genre.'/">'.$genre.'</a>';

    $sep = ', ';

    echo $genre;
}

这将 return:

Drame<a href="/genre/Drame/">Drame</a>Action, <a href="/genre/Action/">Action</a>Comédie, <a href="/genre/Comédie/">Comédie</a>

如果你在循环外回显,你只会得到 $genrelast 值这是一个有效的 EXAMPLE

编辑 - 附加信息

您也可以使用 trim():

而不是 str_replace()
$genre = trim($genre);