我有一个变量字符串,它被传递给一个和数组,然后foreach只是不想工作。以下是我正在使用的代码。
$explode = $_obj->getModDependencies();
//this variable will returns/echos the string as @ModA,@Mod_b,@Mod3 etc (yes @ is in each value)
使用
的foreach和数组php代码$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=@Mod_b
等等。
但是,如果我将实际的变量输出字符串直接放入数组中,它会回应我想要的方式(参见下面有效的代码)
$arr = array(@ModA,@Mod_b,@Mod3);
foreach ($arr as $value) {
echo '<a href="'.$this->getUrl().'mod?mod_id='.$value.'">'.$value.'</a>';
}
任何帮助都会很棒!
答案 0 :(得分:2)
$arr = array($explode);
这就是问题所在,只是说array()
内的某些内容并没有真正使它像你期望的那样成为一个数组。你只给了它一个参数。
您还提到$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>';
}
<强> Fiddle 强>
答案 1 :(得分:1)
当您的变量$explode
为'@ModA,@Mod_b,@Mod3'
字符串时,您必须explode。
$arr = explode(',', $explode);
foreach ($arr as $value) {
echo '<a href="'.$this->getUrl().'mod?mod_id='.$value.'">'.$value.'</a>';
}