2013-03-11 35 views
0

我如何使用PHP這個元素,我有分成文件與爆炸或其他功能內容爲2個標籤

例如選擇:在PHP中的很多時間手動

##cat 1## 
** 
element 1 
element 2 
element 3 
** 

##cat 2## 
** 
element 1 
element 2 
element 3 
** 

##cat 3## 
** 
element 1 
element 2 
element 3 
** 

我看到和我嘗試爆炸等,並沒有得到好的結果,這是可能的PHP發送簡單的循環運行所有這些內容,並在每種情況下內容分離成##或**,並顯示每個元素分開?

我嘗試這樣做,但沒有東西好,因爲我不能做到這一點,用foreach多次嘗試,爆炸,bucle對等,並總是得到相同的結果並顯示所有沒有每個元素

Thank' s的幫助

回答

0

我不知道我理解你的問題。如果你想利用上述輸入並執行以下操作:

Array 
(
    [##cat 1##] => Array 
     (
      [0] => element 1 
      [1] => element 2 
      [2] => element 3 
     ) 

    [##cat 2##] => Array 
     (
      [0] => element 1 
      [1] => element 2 
      [2] => element 3 
     ) 

    [##cat 3##] => Array 
     (
      [0] => element 1 
      [1] => element 2 
      [2] => element 3 
     ) 
) 

試試這個:

$input_text =<<<INPUT_TEXT 
##cat 1## 
** 
element 1 
element 2 
element 3 
** 

##cat 2## 
** 
element 1 
element 2 
element 3 
** 

##cat 3## 
** 
element 1 
element 2 
element 3 
** 
INPUT_TEXT; 

$output = array(); 
$current = NULL; 
foreach(explode("\n", $input_text) as $line) 
{ 
    $line = trim($line); 
    if(empty($line)) 
    { 
     continue; 
    } 
    if(substr($line, 0, 2) == '##') 
    { 
     $current = trim($line); 
     continue; 
    } 
    if(substr($line, 0, 2) == '**') 
    { 
     continue; 
    } 
    if(!empty($current)) 
    { 
     $output[$current][] = $line; 
    } 
} 
print_r($output); 
+0

此內容進入文本文件,這個想法it's每個組和每個日期分開,在「##」的情況表示一個類別,並且類別i具有元素,並且這些元素使用其他字符分開,結果必須是這樣的:類別1:元素1,2,3,類別2,元素1,2,3 ,.....等,謝謝 – user2153111 2013-03-11 04:17:57

+0

您是否能夠根據您的需求調整我的解決方案?如果不是的話,你會發佈一個*完全*你期望輸出文件的樣子嗎? – 2013-03-11 14:04:59