1

与えられた答えに基づいて私のために働いた答え

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>

以前に作成されたように、少なくとも3つのラインが必要な場所

<?
$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は値を返さないようになりました

4

1 に答える 1

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 = ...)で行う戻り値を格納する必要があります。

$value = htmlentities(trim($value));HTMLに出力するときに、foreachループに入れたい場合もあります。

于 2012-06-12T23:04:31.273 に答える