2011-07-04 35 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