2015-01-16 3 views
0

У меня есть переменная строка, которая передается в массив и массив, поэтому foreach, который просто не хочет работать. Ниже приведен код im.Строка для массива, а затем foreach

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

и Еогеасп и массив PHP им код, используя

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

, если я использую приведенный выше код он вторит одну гиперссылку с каждым значением в конце его (http://myurl/[email protected],@Mod_b,@Mod3), но я хочу, чтобы повторить каждый гиперссылка для каждого значения.

Какой бы

http://myurl/[email protected]

http://myurl/[email protected]_b

и так далее.

Но если я расположить фактическую переменную строку вывода непосредственно в массив он вторит, как я хочу это (см ниже код, который работает)

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

Любая помощь пустошь быть удивительным !!

ответ

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

+0

Спасибо Человек !! Пошел с $ arr = explode (",", "". $ _ Obj-> getModDependencies(). ""); и достиг того, что мне нужно. – BENN1TH

+2

Вам не нужны кавычки вокруг этой переменной. Вы можете изменить эту строку на '$ arr = explode (", ", $ _ obj-> getModDependencies());' –

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>'; 
} 
Смежные вопросы