2012-01-13 62 views
0

我有一個表格,我要提交的標籤是這樣的:PHP代碼,把逗號每一個後打破了他們在小組

tag1 
tag2 
tag3 
tag4 
... 
tag n 

*在它自己的行中的每個標籤。

我得到的標籤在我的PHP頁面:

$tags = get_option('tags'); 

我現在新線的標準每個標籤分開:

$tag = explode("\n", $tags); 

在一個循環,我贊同他們:

$i = '-1'; 
while(){ // usually a wordpress loop 
    $i++; 
    echo $tag[$i]; 
} 

最後我得到:

Tag1 
Tag2 
Tag3 
... 
Tag n 

這裏是我需要幫助的地方。

  1. 我不能找到一種方法,組標籤 - 允許通過3說,而不是每一個新的行爆炸他們 - 「\ n」 這將使我能夠得到這樣的:

  2. * *在每行中的每個標籤後面自動放置一個逗號,但最後一行除外。

這將是這樣的:

Tag1, Tag2 
Tag3, Tag4 
.... 
Tag n-1, Tag n 

任何想法?

Ty!

+0

這是實際的HTML標籤嗎?如果不是所有標籤的長度相同? – RMcLeod 2012-01-13 14:32:48

+0

此代碼應該可以讓用戶在表單中粘貼多個標籤,並且代碼應該將它們分成兩組,然後添加逗號 – webmasters 2012-01-13 14:37:18

回答

0

編輯:對不起,我第一次不太明白你的問題。下面的代碼應該在每條線上顯示3個標籤。

$totalTags = count($tag); 
for ($i = 0; $i < $totalTags; $i += 3) 
{ 
    $tagsLine = array($tag[$i]); 
    isset($tag[$i + 1]) ? array_push($tagsLine, $tag[$i + 1]) : FALSE; 
    isset($tag[$i + 2]) ? array_push($tagsLine, $tag[$i + 2]) : FALSE; 
    echo implode(',', $tagsLine), '<br />'; 
} 

因此,基本上,你需要先算多少標籤數組中存在,然後做一個for循環,並在您使用破滅到「膠水」 3個標籤一起循環的結束。如果你想知道,回聲上面的兩行是將一個新元素推送到臨時數組中,這個數組將一起「內爆」。臨時數組將始終包含一個標記。那就是每一行中的第一個。

+0

不會像他想要的那樣每3個標籤插入一個新行。 – MrGlass 2012-01-13 14:37:51

+0

@MrGlass謝謝你告訴我。沒有意識到這是他想要的。無論如何,代碼更新... – 2012-01-13 14:55:08

+0

你好,TY非常代碼。它工作,雖然當它回聲的我有一個問題與逗號 - 我得到「tag1,tag2,tag3」而不是「tag1,tag2,tag3」任何想法爲什麼?泰! – webmasters 2012-01-14 14:08:19

0

您可以對它們進行實時分組。 下面是使用該代碼的例子您提供

$tag = explode("\n", $tags); 
$i = '-1'; 
$tags_in_group = 2; 
while(){ // usually a wordpress loop 
    $i++; 
    echo $tag[$i] . !(($i + 1) % $tags_in_group) ? "\n" : ', '; 
} 
0

使用Modulus (%) operator做不同的操作,每3項。 WC改變你的while循環,像這樣的:

$i=0; 
while(){ // usually a wordpress loop 
    if(($i+1)%3!=0) { 
     echo $tag[$i] . ","; 
    } 
    else { 
     echo $tag[i] . "\n"; 
    } 
    $i++; 
} 
0

我會保持爆炸,但在循環內,你可以兩件事之一。

這將顯示然後遞增變量。顯示時添加必要的標點符號。

$i = 0;// I normally start at 0 to allow increments at the end of the loop 
while(){// usually a wordpress loop 
    echo $tag[$i++] . ", " $tag[$i++] . "\n"; 
} 

或下面的代碼將檢查當前值的模數並確定顯示逗號或換行符的天氣。

$i = 0;// I normally start at 0 to allow increments at the end of the loop 
while(){// usually a wordpress loop 
echo $tag[$i] . ($i%2==0 ? "\n" : ", "); 
$i++ 
//or the more readable approach 
    if ($i%2==0){ 
     echo $tag[$i++] . "\n"; 
    } 
    else{ 
    echo $tag[$i++] . ", "; 
    } 
} 
相關問題