【问题标题】:Making a dynamic array制作动态数组
【发布时间】:2012-06-12 22:59:50
【问题描述】:

根据给出的答案对我有用的答案

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 不返回值

【问题讨论】:

  • 只是指出这一点:尝试使用&lt;?php ?&gt;语法
  • 你为什么要炸掉$post[tags]?
  • @tunmisefasipe 可能是因为它们以逗号分隔的字符串形式存储在数据库中。
  • 我猜对了。弄得一头雾水

标签: php mysql arrays blogs


【解决方案1】:

使用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 时,您可能还想在 foreach 循环中添加一个 $value = htmlentities(trim($value));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 2012-11-06
    • 2012-11-19
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2017-06-04
    相关资源
    最近更新 更多