2011-07-04 32 views
1

我已经保存在数据库中的东西,如:分割一行文字?

Apple Banana Orange Pear 

它们都保存在数据库中的一行,用空格隔开。

我想从数据库中检索信息,并把它们放到HTML像这样:

<li>Apple</li> 
<li class="alt">Banana</li> 
<li>Orange</li> 
<li class="alt">Pear</li> 

我怎么会去这样做呢?我已经看过explode()然后foreach,这是最好的方法吗?

$fruits = explode(" ", $q['fruits']); 

$i = 1; 

foreach($fruits as $fruit){ 

    if ($i % 2 == 0){ 
     $alt = ' class="alt"'; 
    }else{ 
     $alt = ''; 
    } 

    echo "<li" . $alt . ">" . $value . "</li>"; 

$i++; 
} 
+1

你已经回答了你自己的问题,没有按你提供的代码是不是?理想的工作? – 2011-07-04 02:45:47

+0

它的确如此,我只是在发布后更新它 - 想知道是否有更好的方法。 – Latox

+1

您可能需要使用[htmlspecialchars](http://php.net/htmlspecialchars)。 – Saxoier

回答

1

如果$q['fruits']包含字符串"Apple Banana Orange Pear"然后...

代码:

$fruits = explode(" ", $q['fruits']); 
$s = true; 
foreach ($fruits as $fruit) { 
    if ($s) echo "<li>$fruit</li>\n"; 
    else echo "<li class=\"alt\">$fruit</li>\n"; 
    $s = !$s; 
    } 

输出:

<li>Apple</li> 
<li class="alt">Banana</li> 
<li>Orange</li> 
<li class="alt">Pear</li> 
+0

谢谢 - 我已经编辑了我的帖子,它的工作原理完全相同,这仍然是一个好方法吗? – Latox

+0

当然,这是......如果你不需要'$ key'(在这个特定情况下是数字),不要使用'$ key => $ value'。根据你的代码示例,我使用'$ fruit'代替,或者只使用'$ value'。干杯 – Wh1T3h4Ck5