字符串到数组然后foreach

时间:2015-01-16 07:08:36

标签: php arrays foreach

我有一个变量字符串,它被传递给一个和数组,然后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=@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>';
}

任何帮助都会很棒!

2 个答案:

答案 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>';
}