我有一个变量字符串,它被传递给一个 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>';
}