PHP结合了循环中的值

时间:2011-05-31 13:07:43

标签: php

如果我想在示例中按如下方式显示文本,怎么办呢?

$tmp=mysql_query("SELECT ... FROM ....");
$total=mysql_num_rows($tmp);
$tekst1='Your total number of friends are: '.$total.'. Your friends are: ';
while($p=mysql_fetch_array($tmp)) {
$tekst2=$p['friend'].", ";
}
$text_complete=$tekst1.$tekst2;
echo $text_complete;
$ text_complete应该是这样的:“你的朋友总数是:3。你的朋友是:John,Mike,Michael”。但是,使用上面的代码,我得到“你的朋友总数是:3。你的朋友是:约翰,”

如何组合两个文本,从循环中获取的文本和固定的文本?

6 个答案:

答案 0 :(得分:1)

我认为你应该这样做:

       $tmp=mysql_query("SELECT ... FROM ....");
       $total=mysql_num_rows($tmp);
       $tekst1='Your total number of friends are: '.$total.'. Your friends are: ';
       $friends = array();
       while($p = mysql_fetch_array($tmp)) {
             $friends[] = $p['friend'];
       }
       $tekst2= implode(', ', $friends);
       $text_complete=$tekst1.$tekst2;
       echo $text_complete;

否则每次都会覆盖变量!

编辑 - 我在Xaerxess答案中更正了使用内爆的代码。 Previousli我刚连接并使用substr删除尾随的逗号和空格

答案 1 :(得分:1)

您可以使用:

$tekst2 .= $p['friend'].", ";

添加到变量(而不是覆盖它。然后删除尾随的逗号:

$text_complete=$tekst1. rtrim( $tekst2, "," );

答案 2 :(得分:1)

$tmp=mysql_query("SELECT ... FROM ....");
$total=mysql_num_rows($tmp);
$tekst = '';
$tekst='Your total number of friends are: '.$total.'. Your friends are: ';
while($p=mysql_fetch_array($tmp)) {
$tekst.=$p['friend'].", ";
}
echo $tekst;

答案 3 :(得分:1)

$tekst2 = new Array();
while($p=mysql_fetch_array($tmp)) {
    $tekst2[] = $p['friend'];
}
$text_complete = $tekst1 . implode(', ',$tekst2);

但更好的方法是在sql中使用GROUP_CONCAT

答案 4 :(得分:1)

使用PHP implode / join funciton,因此最后没有任何尾随逗号。在这种情况下:

$fiends = array();
while($p = mysql_fetch_array($tmp)) {
     $friends[] = $p['friend'];
}
implode(', ', $friends);

编辑:我基本上将Billy Moon的答案翻了一番。更不要使用mysql_*函数 - 不推荐使用 - 请参阅下面的评论。

答案 5 :(得分:1)

        $tmp=mysql_query("SELECT ... FROM ....");
        $total=mysql_num_rows($tmp);
        $tekst1='Your total number of friends are: '.$total.'. Your friends are: ';
        while($p=mysql_fetch_array($tmp)) 
           {
           $tekst1 .= $p['friend'].", "; // add friend names from MySQL result.
           }
        $tekst1 = substr($tekst2, 0, -2);//Remove comma.
        echo $tekst1; // Outputs the wanted string