字符串到数组,然后 foreach


String to an array and then foreach

我有一个变量字符串,它被传递给一个 and 数组,然后传递给不想工作的 foreach。下面是我使用的代码。

$explode = $_obj->getModDependencies();
//this variable will returns/echos the string as @ModA,@Mod_b,@Mod3 etc (yes @ is in each value) 

以及 foreach 和数组 PHP 代码 im 使用

$arr = array($explode);
foreach ($arr as $value) {
echo '<a href="'.$this->getUrl().'mod?mod_id='.$value.'">'.$value.'</a>';
}

如果我使用上面的代码,它会回显一个超链接,每个值位于其末尾 (http://myurl/mod?mod_id=@ModA,@Mod_b,@Mod3),但我想回显每个值的每个超链接。

这将是

http://myurl/mod?mod_id=@ModA

http://myurl/mod?mod_id=@Mod_b

等等。

但是,如果我将实际的变量输出字符串直接放入数组中,它会以我想要的方式回显出来(请参阅下面的代码)

$arr = array(@ModA,@Mod_b,@Mod3);
foreach ($arr as $value) {
echo '<a href="'.$this->getUrl().'mod?mod_id='.$value.'">'.$value.'</a>';
}

任何帮助都会很棒!!

$arr = array($explode);

这就是问题所在,仅仅说某些东西在array()并不能真正使它成为你期望的数组。你只给了它 1 个参数。

您还提到$explode的价值是这样的@ModA,@Mod_b,@Mod3。仅仅通过命名$explode的东西并不能爆炸它。你必须自己爆炸它

$arr=explode(",","@ModA,@Mod_b,@Mod3"); 
//$arr=explode(",",$explode) in your case

一旦完成,你的循环已经很好了

foreach ($arr as $value) {
echo '<a href="'.$this->getUrl().'mod?mod_id='.$value.'">'.$value.'</a>';
}

小提琴

当你的变量$explode是一个'@ModA,@Mod_b,@Mod3'字符串

时,你必须把它分解。
$arr = explode(',', $explode);
foreach ($arr as $value) {
    echo '<a href="'.$this->getUrl().'mod?mod_id='.$value.'">'.$value.'</a>';
}