2012-05-07 65 views
0

我在這個網站上使用了幾個不同的職位來弄清楚如何刪除字符串中的最後一個逗號。顯然這是一個經典的問題,但我不明白爲什麼它會在逗號之前添加一個額外的空格,而不是在逗號之後添加一個額外的空格?當我刪除最後一個逗號時,爲什麼會得到額外的空白空間?

一如往常我打得周圍的代碼,但我無法揣摩出多餘的空白從何而來,請大家幫我,我會失明!

<?php $comma = ""; ?><?php foreach ($tags as $tag) { ?> 
<?php echo $comma; ?><a href="<?php echo $tag['href']; ?>"> 
<?php echo $tag['tag']; ?></a><?php $comma = ","; ?> 
+7

你的代碼是不是真的不可讀ISIT? –

+0

對不起,我不理解你的評論,也不看似與我的問題有關。 – Stefan

回答

2

的空白是由於你的HTML的換行符<a>元素打開後。

更好的輸出soution是:

<?php 
$total = count($tags); 
$x = 0; 
foreach ($tags as $tag){ 
    $x++; 
    echo '<a href="' . $tag['href'] . '">' . $tag['tag'] . '</a>'; 
    if ($x < $total) echo ','; 
} 
?> 
+0

如果你看看我的其他兩個嘗試使用php標籤來轉換這個,你會看到我很無用。我相信它的工作原理,但沒有添加額外的標籤,我得到的只是錯誤。例如,我是否會像這樣包裝第二個語句'<?php $ x = 0; ?>' – Stefan

+0

對不起,整個塊應該被包裹在'',:) –

+0

我需要封閉的標籤內的每個動作,否則所有的地方產生錯誤上述更新。使用你的代碼發佈,它討厭'{'例如。所以,我必須單獨附上它,以便像這樣工作,但它仍然發送錯誤,因爲它喜歡嘲笑我是多麼愚蠢的PHP!?!哎呀!以下是我如何設法屠宰它,但仍然沒有運氣:'<?php $ total = count($ tags); $ x = 0; ?><?php foreach($ tags as $ tag){?><?php $ x ++;回聲'' . $tag['tag'] . ''; \t \t如果($ X <$總)回聲 ''; ?>' – Stefan

2

也許你已經在PHP標籤之間的HTML代碼中的空白......你爲什麼不它改寫爲這樣的:

<?php $comma = ''; 
foreach ($tags as $tag) { 
    echo "$comma<a href='{$tag['href']}'>{$tag['tag']}</a>"; 
    $comma = ','; 
} ?> 
+0

我不知道爲什麼我張貼這一點,因爲很明顯它不會工作,但我能走到今天,並不斷收到錯誤:'<?php foreach($ tags as $ tag){?><?php echo「$ comma '>{$tag['tag']」; ?> \t \t ' – Stefan

+0

我不明白......當你做我的代碼時會發生什麼?你會得到什麼輸出? – Shomz

+0

另外,你沒有很好地轉換我的代碼,這裏是固定版本:'<?php $ comma =「」; ?> <?php foreach($ tags as $ tag){?> <?php echo「$ comma {$tag['tag']}」; ?> <?php $ comma =「,」; ?>'同樣,不要忘記刪除標籤之間的空格。 – Shomz

2

我寧願寫了整個事情這樣:

<?php 
$tag_strings = array(); 
foreach ($tags as $tag) 
    { 
    $tag_strings[] = "<a href='" . $tag['href'] . "'>" . $tag['tag'] . "</a>"; 
    } 
echo implode(',', $tag_strings); 
+0

我這樣做,並得到一個錯誤'意想不到[''<?php $ tag_strings = []; ?><?php foreach($ tags as $ tag){?><?php $ tag_strings [] =「" . $tag['tag'] . "」; ?> \t \t <?php echo implode(',',$ tag_strings); ?>' – Stefan

+0

您有一箇舊版本的PHP,它沒有創建數組的'[]'速記。做'$ tag_strings = array();'而不是。 –

+0

xampp for windows php 5.3.8 - 當我改變代碼建議我得到'解析錯誤:語法錯誤,意外')'' – Stefan

相關問題