Как взорвать и сохранить значение для каждой ссылки? - PullRequest
0 голосов
/ 27 сентября 2011

Скажите, у меня есть следующий код:

$arr = array('id' => $tarr = array('1' => 'Fred', '2' => 'Wilma', 'c' => 'Bam Bam'));

echo '<a href="?tag='.$tarr.'">' . implode( '</a>, <a href="?tag='.$tarr.'">', $tarr) . '</a>';

Это отображает: Фред, Вильма, Бам Бам

, но href показывает значение Array вместо Фреда для Фреда,Wilma для Wilma и т. Д.

Приветствия

Ответы [ 3 ]

4 голосов
/ 27 сентября 2011

Вы можете построить выходную строку (или массив, как показано здесь), используя цикл foreach:

foreach($tarr as $v){
  $out[] = "<a href='?tag=$v'>$v</a>";
}

echo implode(', ', $out)
0 голосов
/ 27 сентября 2011

$tarr - это массив, поэтому при преобразовании в строку он печатает Array.

Не используйте implode здесь, вы должны использовать цикл for для получения каждого значения массива.

Что вы должны сделать, это что-то вроде этого:

$tarr = array('1' => 'Fred', '2' => 'Wilma', 'c' => 'Bam Bam');
$aTags = array();
foreach($tarr as $v){
  $aTags[] = '<a href="?tag='.$v.'">'.$v.'</a>';
}
echo implode(', ', $aTags);

Кроме того, почему у вас здесь $arr? Это абсолютно бесполезно.

$arr = array('id' => $tarr = array('1' => 'Fred', '2' => 'Wilma', 'c' => 'Bam Bam'));

Это то же самое, что и

$tarr = array('1' => 'Fred', '2' => 'Wilma', 'c' => 'Bam Bam');
$arr = array('id' => $tarr);
0 голосов
/ 27 сентября 2011

Я думаю, что вы пытаетесь сделать это:

$arr = array('1' => 'Fred', '2' => 'Wilma', 'c' => 'Bam Bam');
echo '<a href="?tag='.implode('"></a><a href="?tag=',$arr).'"></a>';
...