根据答案提供给我的答案
while($post = mysql_fetch_array($tags)) {
$push = explode(',', $post['tags']);
$array = array_merge($array, $push);
}
所以我试图从我的数据库中显示标签,并用这样的方式建立链接:
<?
$tags = mysql_query( 'SELECT tags FROM `Table`');
$array = array();
while($post = mysql_fetch_array($tags)) {
$push = explode(',', $post['tags']);
array_push($array, $push);
}
foreach ($array as $value) {?>
<a href="url.php?tags=<? echo $value?>"><? echo $value?></a>
<? }
?>
但我得到的只是
<a href="url.php?tags=Array">Array</a>
我应该至少拥有以前由
生成的三行<?
$tags = mysql_query( 'SELECT tags FROM `Table`');
while($post = mysql_fetch_array($tags)) {
$array = explode(',', $post['tags']);
foreach ($array as $value) {?>
<a href="url.php?tags=<? echo $value?>"><? echo $value?></a>
<? }
}
?>
被调用的代码如下所示:
tag1, tag2, tag3
尝试
while($post = mysql_fetch_array($tags)) {
$push = explode(',', $post['tags']);
array_merge($array, $push);
}
foreach ($array as $value) {?>
<a href="index.php?tags=<? echo $value?>"><? echo $value?></a>
现在foreach没有返回值
答案 0 :(得分:3)
使用array_merge()
,因为array_push()
会将explode()
(一个数组)的输出作为一个整体推送到第一个参数中的数组,从而创建一个锯齿状数组。
至于你的编辑,这可行:
$array = array_merge($array, $push);
foreach ($array as $value)
{
echo '<a href="url.php?tags=' . $value . '">' . $value . '</a>';
}
请注意array_merge()
(与array_push()
相反,必须喜欢一致性)不会改变作为第一个参数传递的数组,因此您必须存储我所做的返回值第一行($array = ...
)。
在输出到HTML时,您可能还想在$value = htmlentities(trim($value));
循环中添加foreach
。