0

假设我有以下代码:

$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>';

这显示:Fred、Wilma、Bam Bam

但是href显示价值Array而不是 Fred 的 Fred,Wilma 的 Wilma 等

干杯

4

3 回答 3

4

您可以使用 foreach 循环构建输出字符串(或此处显示的数组):

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

echo implode(', ', $out)
于 2011-09-27T15:19:21.490 回答
0

我认为你正在尝试做的是:

$arr = array('1' => 'Fred', '2' => 'Wilma', 'c' => 'Bam Bam');
echo '<a href="?tag='.implode('"></a><a href="?tag=',$arr).'"></a>';
于 2011-09-27T15:20:03.850 回答
0

$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);
于 2011-09-27T15:23:45.900 回答